#pragma once #include "CoreMinimal.h" #include "EDrinkableAlcoholStrength.h" #include "SavableDataAsset.h" #include "DrinkableDataAsset.generated.h" class ADrinkableActor; class ADrinkableItem; class APlayerCharacter; class UDLCBase; class UDialogDataAsset; class UDrinkEffectComponent; class UDrinkableDataAsset; class UMissionStat; class UObject; class UResourceData; class UTemporaryBuff; class UTexture2D; UCLASS(Blueprintable) class UDrinkableDataAsset : public USavableDataAsset { GENERATED_BODY() public: UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) FText DrinkableName; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) FText DrinkableDescription; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) int32 DrinkablePrice; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) bool IsSpecialBeer; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TSoftObjectPtr DrinkableIcon; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) int32 RequiredPlayerRank; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) bool ParticipatesInFreeBeerEvent; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) EDrinkableAlcoholStrength AlcoholStrength; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UDrinkableDataAsset* SpecialEdition; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UDLCBase* RequiredDLC; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) bool bPlayFireworks; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UMissionStat* StatConsumed; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UMissionStat* StatRoundOrdered; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TSoftClassPtr DrinkableActorClass; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TSoftClassPtr DrinkableItemClass; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UDialogDataAsset* OrderShout; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UDialogDataAsset* OrderCheeringShout; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UDialogDataAsset* DrinkSaluteShout; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) UTemporaryBuff* buff; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TSoftClassPtr DrinkEffect; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TMap UnlockCost; UPROPERTY(BlueprintReadWrite, EditAnywhere, meta=(AllowPrivateAccess=true)) TMap PurchaseCost; UDrinkableDataAsset(); UFUNCTION(BlueprintCallable, meta=(WorldContext="WorldContext")) static bool TryUnlockSpecialDrinks(UObject* WorldContext); UFUNCTION(BlueprintCallable, meta=(WorldContext="WorldContext")) bool TryUnlockDrink(UObject* WorldContext); UFUNCTION(BlueprintCallable, meta=(WorldContext="WorldContext")) bool TryPurchaseDrink(UObject* WorldContext); UFUNCTION(BlueprintCallable) void OnRoundOrdered(APlayerCharacter* Character); UFUNCTION(BlueprintCallable, BlueprintPure) bool MustBeUnlocked() const; UFUNCTION(BlueprintCallable, BlueprintPure, meta=(WorldContext="WorldContext")) bool IsUnlocked(UObject* WorldContext) const; UFUNCTION(BlueprintCallable, BlueprintPure, meta=(WorldContext="WorldContext")) bool IsDrinkFree(UObject* WorldContext); UFUNCTION(BlueprintCallable, BlueprintPure) bool HasSpecialEdition() const; UFUNCTION(BlueprintCallable, BlueprintPure, meta=(WorldContext="WorldContext")) UDrinkableDataAsset* GetSpecialEdition(UObject* WorldContext); UFUNCTION(BlueprintCallable, BlueprintPure) UTexture2D* GetDrinkableIcon() const; UFUNCTION(BlueprintCallable, BlueprintPure, meta=(WorldContext="WorldContext")) static bool AreSpecialDrinksUnlocked(UObject* WorldContext); };