From 3c68d50ed1417612da84676c765dabd4b5270450 Mon Sep 17 00:00:00 2001 From: sSebster Date: Tue, 21 Jan 2025 16:28:43 +0100 Subject: [PATCH] Added for parent weapon class : Reload and AddAmmo --- Binaries/Win64/UnrealEditor-LegumeMix.exp | 4 ++-- Binaries/Win64/UnrealEditor-LegumeMix.pdb | 4 ++-- Source/LegumeMix/Private/Weapon/Bazoucorn.cpp | 4 ---- .../LegumeMix/Private/Weapon/LMBazoucorn.cpp | 9 ++++++++ .../LegumeMix/Private/Weapon/LMRadivolver.cpp | 6 +++++ Source/LegumeMix/Private/Weapon/LMWeapon.cpp | 23 +++++++++++++++++++ .../Weapon/{Bazoucorn.h => LMBazoucorn.h} | 2 +- Source/LegumeMix/Public/Weapon/LMWeapon.h | 10 ++++---- .../Public/Weapon/LMWeaponDataStructure.h | 5 ++-- 9 files changed, 52 insertions(+), 15 deletions(-) delete mode 100644 Source/LegumeMix/Private/Weapon/Bazoucorn.cpp create mode 100644 Source/LegumeMix/Private/Weapon/LMBazoucorn.cpp rename Source/LegumeMix/Public/Weapon/{Bazoucorn.h => LMBazoucorn.h} (88%) diff --git a/Binaries/Win64/UnrealEditor-LegumeMix.exp b/Binaries/Win64/UnrealEditor-LegumeMix.exp index a6c8e31..81cee73 100644 --- a/Binaries/Win64/UnrealEditor-LegumeMix.exp +++ b/Binaries/Win64/UnrealEditor-LegumeMix.exp @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2c7dbeab63810375b3130700a96467f2ff19c4a5ce65ef643464f197fbd48968 -size 21132 +oid sha256:539ff602aa1fa5ccacb50b1125dbb86199c549e0b24a8a7da2c9d4cb814b6f48 +size 34050 diff --git a/Binaries/Win64/UnrealEditor-LegumeMix.pdb b/Binaries/Win64/UnrealEditor-LegumeMix.pdb index 0e11f92..6e57268 100644 --- a/Binaries/Win64/UnrealEditor-LegumeMix.pdb +++ b/Binaries/Win64/UnrealEditor-LegumeMix.pdb @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c9a69dc83569b529cbab9a41a0b4a673d1954c0706a7d4fa86941384f9f7ec04 -size 60411904 +oid sha256:bfcad27449bf4813b3c20458b70d67afde0d17f6abcb3d968291708b64a76bd6 +size 60657664 diff --git a/Source/LegumeMix/Private/Weapon/Bazoucorn.cpp b/Source/LegumeMix/Private/Weapon/Bazoucorn.cpp deleted file mode 100644 index 49fe2af..0000000 --- a/Source/LegumeMix/Private/Weapon/Bazoucorn.cpp +++ /dev/null @@ -1,4 +0,0 @@ -// Fill out your copyright notice in the Description page of Project Settings. - - -#include "Weapon/Bazoucorn.h" diff --git a/Source/LegumeMix/Private/Weapon/LMBazoucorn.cpp b/Source/LegumeMix/Private/Weapon/LMBazoucorn.cpp new file mode 100644 index 0000000..9cc48fa --- /dev/null +++ b/Source/LegumeMix/Private/Weapon/LMBazoucorn.cpp @@ -0,0 +1,9 @@ +// Fill out your copyright notice in the Description page of Project Settings. + + +#include "Weapon\LMBazoucorn.h" + +void ULMWeapon::Fire() +{ + //Fire like a Bazoucorn +} diff --git a/Source/LegumeMix/Private/Weapon/LMRadivolver.cpp b/Source/LegumeMix/Private/Weapon/LMRadivolver.cpp index f401218..21d995a 100644 --- a/Source/LegumeMix/Private/Weapon/LMRadivolver.cpp +++ b/Source/LegumeMix/Private/Weapon/LMRadivolver.cpp @@ -2,3 +2,9 @@ #include "Weapon/LMRadivolver.h" + +void ULMWeapon::Fire() +{ + //Fire like a Radivolver +} + diff --git a/Source/LegumeMix/Private/Weapon/LMWeapon.cpp b/Source/LegumeMix/Private/Weapon/LMWeapon.cpp index 21931da..16d8a30 100644 --- a/Source/LegumeMix/Private/Weapon/LMWeapon.cpp +++ b/Source/LegumeMix/Private/Weapon/LMWeapon.cpp @@ -29,5 +29,28 @@ void ULMWeapon::Reload() { //Do design reload logic OnReload(); + if(HasAmmoInClip()) + { + if(CurrentAmmoInInventory >= WeaponDataStructure.MaxClipAmmo) + { + CurrentClipAmmo = WeaponDataStructure.MaxClipAmmo; + CurrentAmmoInInventory -= WeaponDataStructure.MaxClipAmmo; + } + else + { + CurrentClipAmmo = CurrentAmmoInInventory; + CurrentAmmoInInventory = 0; + } + } +} + +void ULMWeapon::AddAmmo(int AmountOfAmmoToGet) +{ + CurrentAmmoInInventory += AmountOfAmmoToGet; +} + +void ULMWeapon::Fire() +{ + //Fire } diff --git a/Source/LegumeMix/Public/Weapon/Bazoucorn.h b/Source/LegumeMix/Public/Weapon/LMBazoucorn.h similarity index 88% rename from Source/LegumeMix/Public/Weapon/Bazoucorn.h rename to Source/LegumeMix/Public/Weapon/LMBazoucorn.h index b644cb3..6d413c1 100644 --- a/Source/LegumeMix/Public/Weapon/Bazoucorn.h +++ b/Source/LegumeMix/Public/Weapon/LMBazoucorn.h @@ -4,7 +4,7 @@ #include "CoreMinimal.h" #include "LMWeapon.h" -#include "Bazoucorn.generated.h" +#include "LMBazoucorn.generated.h" /** * diff --git a/Source/LegumeMix/Public/Weapon/LMWeapon.h b/Source/LegumeMix/Public/Weapon/LMWeapon.h index 4dda398..d9c2e60 100644 --- a/Source/LegumeMix/Public/Weapon/LMWeapon.h +++ b/Source/LegumeMix/Public/Weapon/LMWeapon.h @@ -27,12 +27,14 @@ public: void Initialize(); void Fire(); + UFUNCTION(BlueprintCallable) - void Reload(); + void Reload(); //Reload current clip to max ammo in clip UFUNCTION(BlueprintCallable, BlueprintImplementableEvent) void OnReload(); //To call in blueprint for design utilities - void AddAmmo(); + + void AddAmmo(int AmountOfAmmoToGet); //Add ammo in inventory - bool HasAmmoInClip(); - bool HasAmmoInInventory(); + bool HasAmmoInClip(); //Check if there is ammo in clip (return a bool) + bool HasAmmoInInventory(); //Check if there is ammo in "inventory" (return a bool) }; diff --git a/Source/LegumeMix/Public/Weapon/LMWeaponDataStructure.h b/Source/LegumeMix/Public/Weapon/LMWeaponDataStructure.h index 1fe5db6..df020c7 100644 --- a/Source/LegumeMix/Public/Weapon/LMWeaponDataStructure.h +++ b/Source/LegumeMix/Public/Weapon/LMWeaponDataStructure.h @@ -1,5 +1,6 @@ #pragma once #include "AnimationBlueprintEditorSettings.h" +#include "LMAmmo.h" #include "LMWeaponDataStructure.generated.h" USTRUCT(BlueprintType) @@ -16,8 +17,8 @@ struct FLMWeaponDataStructure : public FTableRowBase UPROPERTY(EditAnywhere, BlueprintReadWrite) TObjectPtr MeshWeapon; //Mesh of the weapon display in the scene - //UPROPERTY(EditAnywhere, BlueprintReadWrite) - //enum AmmoType; //Type of ammo, which ammo this weapon is using + UPROPERTY(EditAnywhere, BlueprintReadWrite) + EAmmoType AmmoType; //Type of ammo, which ammo this weapon is using UPROPERTY(EditAnywhere, BlueprintReadWrite) TObjectPtr AnimationBluePrint; //The animation blueprint to animate the mesh