From 055356ec01fc134ccbb8462ccb9e5723f7bbec3f Mon Sep 17 00:00:00 2001 From: MARCEL HARA Date: Mon, 16 Oct 2023 15:16:57 +0100 Subject: [PATCH 1/3] Tweaked Weapon Values & Added Tick func to Char.cpp --- .../BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset | 4 ++-- .../BaseWeapons/Pistols/BP_BasePistolWeapon.uasset | 4 ++-- .../Source/EndlessVendetta/EndlessVendettaCharacter.cpp | 5 +++++ .../Source/EndlessVendetta/EndlessVendettaCharacter.h | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset index 534c1e9e..877f5854 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/AssaultRifles/BP_BaseAssaultRifle.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:215d949e3ea1df83d937e0387115975c9c3e14077a879a6f834831241c154f18 -size 39178 +oid sha256:63a33ee4cfad25c36bd022a8723b9b6ff80d70127366efa8983549044fd1f8ac +size 39198 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset index 75a10fe3..206389d1 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/Pistols/BP_BasePistolWeapon.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:246a8220f9708873776922ca6683ec085b4447eecd1efd89fd0572c94b9d5956 -size 49471 +oid sha256:2a94e9d1b1b74a330a53970bbb11f1357c02996a00a31d4bdafc5c9313759fb2 +size 49286 diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp index 1d8f5d11..7e024eb4 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp @@ -66,6 +66,11 @@ void AEndlessVendettaCharacter::BeginPlay() } } +void AEndlessVendettaCharacter::Tick(float DeltaTime) +{ + Super::Tick(DeltaTime); +} + //////////////////////////////////////////////////////////////////////////// Input void AEndlessVendettaCharacter::SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h index cc936f99..346213ab 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h @@ -83,6 +83,7 @@ public: protected: virtual void BeginPlay() override; + virtual void Tick(float DeltaTime) override; UPROPERTY(EditDefaultsOnly, Category = "Gadget") TSubclassOf GadgetManagerClass; From a3021a27229c96533f9f6e5eedf8a1ceb447a98b Mon Sep 17 00:00:00 2001 From: MARCEL HARA Date: Mon, 16 Oct 2023 15:54:53 +0100 Subject: [PATCH 2/3] Added Reload Wait Timer To All Weapons --- .../Blueprints/BaseWeapons/WBP_AmmoCount.uasset | 4 ++-- .../FirstPerson/Input/Actions/IA_Reload.uasset | 4 ++-- .../EndlessVendetta/EndlessVendettaCharacter.cpp | 10 ++++++---- .../Source/EndlessVendetta/EndlessVendettaCharacter.h | 1 + .../EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp | 11 +++++++++-- .../EndlessVendetta/WeaponSystem/BaseWeaponClass.h | 8 +++++++- 6 files changed, 27 insertions(+), 11 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset index 6e0e13d4..1d67df8a 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d593d68d5b9a9fc58b1b7ecc44936b84e361aaa1762ab04c5924e36bfd45bee9 -size 61494 +oid sha256:7cfd791337f79a964dbfef919494665648f1ce39168d4f28cd122e2018c4b694 +size 61741 diff --git a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Reload.uasset b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Reload.uasset index 5ed3f2f9..803128c2 100644 --- a/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Reload.uasset +++ b/EndlessVendetta/Content/FirstPerson/Input/Actions/IA_Reload.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:85ff514d76166f7c202ee64b678abe6314dcc24d3d662883b53edb7608ea2bfe -size 1647 +oid sha256:eab7ab2c34f8fe941f0964ebe97c974bbcd4bf68ad27a0f489a65b6cc2c6ddb2 +size 1643 diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp index 7e024eb4..4a1bd405 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.cpp @@ -256,11 +256,11 @@ void AEndlessVendettaCharacter::EquipSecondary() //Calls the fire function in the baseWeaponClass void AEndlessVendettaCharacter::FireCaller() { - if (IsValid(PrimaryWeapon)) + if (IsValid(PrimaryWeapon) && !bIsReloading) { PrimaryWeapon->Fire(); } - if (IsValid(SecondaryWeapon)) + if (IsValid(SecondaryWeapon) && !bIsReloading) { SecondaryWeapon->Fire(); } @@ -330,11 +330,13 @@ void AEndlessVendettaCharacter::GunReload() { if (IsValid(PrimaryWeapon)) { - PrimaryWeapon->WeaponReload(); + PrimaryWeapon->ReloadTimer(); + bIsReloading = true; } if (IsValid(SecondaryWeapon)) { - SecondaryWeapon->WeaponReload(); + SecondaryWeapon->ReloadTimer(); + bIsReloading = true; } } diff --git a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h index 346213ab..ece80c9f 100644 --- a/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h +++ b/EndlessVendetta/Source/EndlessVendetta/EndlessVendettaCharacter.h @@ -91,6 +91,7 @@ protected: public: int Money = 2000; + bool bIsReloading = false; /** Look Input Action */ UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Input, meta = (AllowPrivateAccess = "true")) diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp index d20c1ae8..c053413b 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp @@ -54,6 +54,7 @@ void ABaseWeaponClass::BeginPlay() UE_LOG(LogTemp, Display, TEXT("crnnt ammo: %d"), MagazineSize); } + // Called every frame void ABaseWeaponClass::Tick(float DeltaTime) { @@ -63,7 +64,6 @@ void ABaseWeaponClass::Tick(float DeltaTime) { ApplyRecoil(DeltaTime); } - UE_LOG(LogTemp, Display, TEXT("currnt pitch: %f"), currentPitch); if (currentPitch < 0 && bStopShooting) { float increment = currentPitch * DeltaTime * 8; @@ -213,12 +213,19 @@ void ABaseWeaponClass::WeaponScopedFire() } } +void ABaseWeaponClass::ReloadTimer() +{ + GetWorldTimerManager().SetTimer(reloadTimerHandle, this, &ABaseWeaponClass::WeaponReload, TimeToReload, false); + GLog->Log("ReloadTimer Activated"); +} + void ABaseWeaponClass::WeaponReload() { - if(MagazineSize > currentAmmoCount) + if(MagazineSize >= currentAmmoCount) { UE_LOG(LogTemp, Display, TEXT("Weapon Reloading: mag size: %d"), MagazineSize); currentAmmoCount = MagazineSize; + endlessVendettaChar->bIsReloading = false; } } diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h index 00541047..82e7c1bd 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h @@ -41,10 +41,12 @@ protected: float recoilResultPitch = 0; float recoilResultYaw = 0; + + public: // Called every frame virtual void Tick(float DeltaTime) override; - + void ReloadTimer(); UPROPERTY(EditAnywhere) FName WeaponName; @@ -57,6 +59,9 @@ public: UPROPERTY(EditAnywhere, BlueprintReadWrite) int MagazineSize; + UPROPERTY(EditAnywhere) + float TimeToReload = 3.f; + //how many bullets until the recoil stops going up UPROPERTY(EditAnywhere) int howMnyShotsTillRclStop; @@ -95,6 +100,7 @@ public: APlayerController* playerControllerRef; FTimerHandle timerHandle; + FTimerHandle reloadTimerHandle; bool bFirstBulletShot = false; From b2390124117669ae667aa07b782972ab8033f8c3 Mon Sep 17 00:00:00 2001 From: MARCEL HARA Date: Mon, 16 Oct 2023 16:14:23 +0100 Subject: [PATCH 3/3] Added Reload Text To Weapons When Reloading --- .../FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset | 4 ++-- .../FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset | 4 ++-- .../Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp | 3 ++- .../Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h | 6 ++++++ 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset index e3885a88..f2c7b766 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/BP_BaseWeapon.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1de9565906296c664bb7dd6b3f700d135fa5244e1f625f9f792eba15a9880ae8 -size 48226 +oid sha256:754ba6fc86e8d96dbe2fade3d515f45b10eefd1e3c7ac9115658daa2b251622e +size 76327 diff --git a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset index 1d67df8a..5f03829f 100644 --- a/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset +++ b/EndlessVendetta/Content/FirstPerson/Blueprints/BaseWeapons/WBP_AmmoCount.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7cfd791337f79a964dbfef919494665648f1ce39168d4f28cd122e2018c4b694 -size 61741 +oid sha256:1b199cbe84b6c49806f9646990c9c60ff7199214add19091ea0d7a47896daf53 +size 64350 diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp index c053413b..6db24720 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.cpp @@ -216,7 +216,7 @@ void ABaseWeaponClass::WeaponScopedFire() void ABaseWeaponClass::ReloadTimer() { GetWorldTimerManager().SetTimer(reloadTimerHandle, this, &ABaseWeaponClass::WeaponReload, TimeToReload, false); - GLog->Log("ReloadTimer Activated"); + ShowReloadingWidget(); } void ABaseWeaponClass::WeaponReload() @@ -226,6 +226,7 @@ void ABaseWeaponClass::WeaponReload() UE_LOG(LogTemp, Display, TEXT("Weapon Reloading: mag size: %d"), MagazineSize); currentAmmoCount = MagazineSize; endlessVendettaChar->bIsReloading = false; + HideReloadingWidget(); } } diff --git a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h index 82e7c1bd..72ad7ed4 100644 --- a/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h +++ b/EndlessVendetta/Source/EndlessVendetta/WeaponSystem/BaseWeaponClass.h @@ -41,6 +41,12 @@ protected: float recoilResultPitch = 0; float recoilResultYaw = 0; + UFUNCTION(BlueprintImplementableEvent) + void ShowReloadingWidget(); + + UFUNCTION(BlueprintImplementableEvent) + void HideReloadingWidget(); + public: