weapon setup

This commit is contained in:
2026-01-20 00:12:14 -05:00
parent 7d48a2d40b
commit 16e03e2360
6 changed files with 234 additions and 5 deletions

View File

@@ -0,0 +1,76 @@
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MagazineActor.generated.h"
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FAMMO_REPACK);
UCLASS()
class OPENCONFLICT_API AMagazineActor : public AActor
{
GENERATED_BODY()
/*UPROPERTY and UFUNCTION declarations*/
private:
/*Properties*/
UPROPERTY(BlueprintReadOnly, meta=(AllowPrivateAccess=true))
int MAX_COUNT;
UPROPERTY(BlueprintReadOnly, meta=(AllowPrivateAccess=true))
int CurrentCount;
UPROPERTY(BlueprintReadOnly, meta=(AllowPrivateAccess=true))
bool ActiveMag = false;
UPROPERTY(BlueprintReadOnly, meta=(AllowPrivateAccess=true))
float RepackDelay = 0.5f;
/*Functions*/
protected:
/*Properties*/
/*Functions*/
public:
/*Properties*/
UPROPERTY(BlueprintAssignable)
FAMMO_REPACK AMMO_REPACK;
/*Functions*/
UFUNCTION(BlueprintImplementableEvent)
void EmptyMagEvent();
/*C++ only declarations*/
private:
/*Properties*/
/*Functions*/
void PackMag();
protected:
/*Properties*/
FTimerHandle RepackTimer;
/*Functions*/
// Called when the game starts or when spawned
virtual void BeginPlay() override;
public:
/*Properties*/
bool hasReserveAmmo = true;
/*Functions*/
// Sets default values for this actor's properties
AMagazineActor();
AMagazineActor(int MaxCount);
// Called every frame
virtual void Tick(float DeltaTime) override;
void StripRound();
void SetAmmoValues(int MaxCount);
};