|
|
|
// Copyright Zelle Games
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "CoreMinimal.h"
|
|
|
|
#include "Engine/DirectionalLight.h"
|
|
|
|
#include "Subsystems/GameInstanceSubsystem.h"
|
|
|
|
#include "StatsSubsystem.generated.h"
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
UCLASS()
|
|
|
|
class STREETPUNKZ_API UStatsSubsystem : public UGameInstanceSubsystem
|
|
|
|
{
|
|
|
|
GENERATED_BODY()
|
|
|
|
|
|
|
|
public:
|
|
|
|
UPROPERTY(BlueprintReadWrite)
|
|
|
|
TArray<float> SunRotations = {2.5f, 294, 350};
|
|
|
|
|
|
|
|
UFUNCTION(BlueprintCallable)
|
|
|
|
void RotateSun(ADirectionalLight* DirectionalLight);
|
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadWrite)
|
|
|
|
int32 CurrentWave = 1;
|
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadWrite)
|
|
|
|
int32 HighestWave = 0;
|
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadWrite)
|
|
|
|
int32 Money = 0;
|
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadWrite)
|
|
|
|
int32 XP = 0;
|
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadWrite)
|
|
|
|
int32 MaxHP = 80;
|
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadWrite)
|
|
|
|
int32 CurrentHP = 80;
|
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadWrite)
|
|
|
|
int32 AttackPower = 1;
|
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadWrite)
|
|
|
|
float AttackSpeed = 0.33f;
|
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadWrite)
|
|
|
|
int32 Dexterity = 1;
|
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadWrite)
|
|
|
|
int32 DefensePower = 1;
|
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadWrite)
|
|
|
|
int32 RecoveryPerTurn = 0;
|
|
|
|
|
|
|
|
UPROPERTY(BlueprintReadWrite)
|
|
|
|
TArray<TSubclassOf<AActor>> Bosses;
|
|
|
|
|
|
|
|
UFUNCTION(BlueprintCallable, Category="Stats")
|
|
|
|
bool IncreaseStat(FString StatName);
|
|
|
|
|
|
|
|
protected:
|
|
|
|
UFUNCTION(BlueprintCallable, Category="Stats")
|
|
|
|
int32 GetNextCost(int32 Input, FString StatName);
|
|
|
|
|
|
|
|
UFUNCTION(BlueprintCallable, Category="Stats")
|
|
|
|
int32 GetNextCostFloat(float Input, FString StatName);
|
|
|
|
};
|