// 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 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> 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); };