diff --git a/Config/DefaultGameplayTags.ini b/Config/DefaultGameplayTags.ini index 773d28be..571c725d 100644 --- a/Config/DefaultGameplayTags.ini +++ b/Config/DefaultGameplayTags.ini @@ -47,6 +47,7 @@ NetIndexFirstBitSegment=16 +GameplayTagList=(Tag="SaveGameTags",DevComment="") +GameplayTagList=(Tag="SaveGameTags.Alchemy.TableLevel",DevComment="") +GameplayTagList=(Tag="SaveGameTags.Bazar.Table.InventorySpace",DevComment="") ++GameplayTagList=(Tag="SaveGameTags.Bazar.Table.UpgradeLevel.Capacity",DevComment="") +GameplayTagList=(Tag="SaveGameTags.Chest",DevComment="") +GameplayTagList=(Tag="SaveGameTags.Chest.Locked",DevComment="") +GameplayTagList=(Tag="SaveGameTags.Chest.Opened",DevComment="") @@ -57,4 +58,6 @@ NetIndexFirstBitSegment=16 +GameplayTagList=(Tag="Skins.Eleri.Body",DevComment="") +GameplayTagList=(Tag="Skins.Eleri.Default",DevComment="") +GameplayTagList=(Tag="Skins.Eleri.DefaultNoHat",DevComment="") ++GameplayTagList=(Tag="Upgrade.Bazaar",DevComment="") ++GameplayTagList=(Tag="Upgrade.Bazaar.Capacity",DevComment="") diff --git a/Content/GameData/DA_BazaarSettings.uasset b/Content/GameData/DA_BazaarSettings.uasset index 12105e17..577644d0 100644 --- a/Content/GameData/DA_BazaarSettings.uasset +++ b/Content/GameData/DA_BazaarSettings.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6f5cc420900a69d731edc0fc7baff82dfeba2592c400a8497c1826454195a99d -size 12663 +oid sha256:786094ba9d00790a7ef2115d8f6cc07c8effa1327815b50fab23f7b6c391cd16 +size 21420 diff --git a/Content/Scripts/Bazar/BP_BazarSellingStand.uasset b/Content/Scripts/Bazar/BP_BazarSellingStand.uasset index 1864fa65..542acaaf 100644 --- a/Content/Scripts/Bazar/BP_BazarSellingStand.uasset +++ b/Content/Scripts/Bazar/BP_BazarSellingStand.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1ff4463c4a69df67150636030dde1a58e9ffbb9b67dc74145cb0a587a11e7b58 -size 1141667 +oid sha256:9ac0b1f53a6ef9b5c303437ec1e7b59a9abc4b224487cb3d5c0a1edaeaa8591e +size 1148899 diff --git a/Source/ProjectEleri/Data/BazarSettingsDataAsset.cpp b/Source/ProjectEleri/Data/BazarSettingsDataAsset.cpp index 72640ef7..a2d81bce 100644 --- a/Source/ProjectEleri/Data/BazarSettingsDataAsset.cpp +++ b/Source/ProjectEleri/Data/BazarSettingsDataAsset.cpp @@ -9,3 +9,33 @@ void UBazarSettingsDataAsset::PostLoad() Super::PostLoad(); } + +int32 UBazarSettingsDataAsset::GetCostOfUpgrade(const FGameplayTag& Tag, const int32 Level) +{ + if (!Tag.IsValid() || Level > 10 || Level < 0) return 0; + + for (auto Upgrade : UpgradeArray) + { + if (Tag == Upgrade.UpgradeTag) + { + return Upgrade.UpgradeCostCurve.GetRichCurveConst()->Eval(Level); + } + } + + return 0; +} + +float UBazarSettingsDataAsset::GetUpgradeBenefitAmount(const FGameplayTag& Tag, const int32 Level) +{ + if (!Tag.IsValid() || Level > 10 || Level < 0) return 0.f; + + for (auto Upgrade : UpgradeArray) + { + if (Tag == Upgrade.UpgradeTag) + { + return Upgrade.UpgradeBenefitCurve.GetRichCurveConst()->Eval(Level); + } + } + + return 0.f; +} diff --git a/Source/ProjectEleri/Data/BazarSettingsDataAsset.h b/Source/ProjectEleri/Data/BazarSettingsDataAsset.h index 086ac59d..04b54897 100644 --- a/Source/ProjectEleri/Data/BazarSettingsDataAsset.h +++ b/Source/ProjectEleri/Data/BazarSettingsDataAsset.h @@ -3,6 +3,7 @@ #pragma once #include "CoreMinimal.h" +#include "GameplayTagContainer.h" #include "Engine/DataAsset.h" #include "BazarSettingsDataAsset.generated.h" @@ -68,6 +69,26 @@ struct FBazaarHaggleCardData int32 CardDifficulty; }; +USTRUCT(BlueprintType) +struct FBazaarUpgradeData +{ + GENERATED_BODY() + + UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (GameplayTagFilter = "Upgrade.Bazaar")) + FGameplayTag UpgradeTag; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FText UpgradeName; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FText UpgradeDescription; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + TSoftObjectPtr UpgradeIcon; + + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FRuntimeFloatCurve UpgradeCostCurve; + UPROPERTY(EditAnywhere, BlueprintReadWrite) + FRuntimeFloatCurve UpgradeBenefitCurve; +}; + /** * */ @@ -77,18 +98,28 @@ class PROJECTELERI_API UBazarSettingsDataAsset : public UDataAsset GENERATED_BODY() public: - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Eleri|Bazaar|Tresholds") + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Tresholds") int32 HappyThreshold = 50; - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Eleri|Bazaar|Tresholds") + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Tresholds") int32 EmotionLowerThreshold = 65; - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Eleri|Bazaar|Tresholds") + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Tresholds") int32 EmotionUpperThreshold = 80; - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Eleri|Bazaar") + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "General") TArray AvailableDialogueEmotionData; - UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Eleri|Bazaar") + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "General") TArray HaggleCards; + UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "Upgrades") + TArray UpgradeArray; + + virtual void PostLoad() override; + + UFUNCTION(BlueprintPure, Category = "Bazaar") + int32 GetCostOfUpgrade(const FGameplayTag& Tag, const int32 Level); + + UFUNCTION(BlueprintPure, Category = "Bazaar") + float GetUpgradeBenefitAmount(const FGameplayTag& Tag, const int32 Level); };