5#include "CoreMinimal.h"
7#include "Engine/DataTable.h"
8#include "BaseData.generated.h"
19DECLARE_CYCLE_STAT_EXTERN(TEXT("Player Controller Component"), STATGROUP_BaseHelpers_PlayerControllerComp, STATGROUP_BaseHelpers, BASEHELPERS_API);
31UENUM(Blueprintable, BlueprintType, meta = (ScriptName = "EDamageTypePython"))
71UENUM(BlueprintType, meta = (ScriptName =
"ESoundSourcePython"))
131UENUM(Blueprintable, BlueprintType)
147UENUM(BlueprintType, meta = (ScriptName =
"EInteractionTypePython"))
251USTRUCT(BlueprintType)
256 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=
"General")
259 void SetUniqueNumber(const int32 NewID)
269 return UniqueID != -1;
281 explicit FUniqueID(
const FString& NewID,
const int32 NewUniqueID)
284 UniqueID = NewUniqueID;
290 if(ID !=
"ID"){bValid =
true;};
291 if(ID.IsEmpty()){bValid =
false;}
296 return (ID ==
Other.ID) && (UniqueID ==
Other.UniqueID);
300 return (ID !=
Other.ID) || (ID ==
Other.ID && UniqueID !=
Other.UniqueID);
303 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=
"General")
308USTRUCT(BlueprintType)
313 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=
"Base Actor")
314 AActor* Actor =
nullptr;
315 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Base Actor")
317 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Base Actor")
318 UTexture2D* DisplayImage =
nullptr;
331USTRUCT(BlueprintType)
336 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=
"Interaction")
338 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Interaction")
340 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Interaction")
341 bool bAvailable = true;
342 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Interaction")
344 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Interaction")
345 bool bShowButton = false;
346 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Interaction")
347 bool bCustomInteraction = false;
348 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Interaction")
355 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Interaction")
356 float InteractTimeMultiplier = 1.0f;
359 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Interaction", meta=(DisplayThumbnail = false))
360 UInputAction* MappingContext =
nullptr;
370 InteractionType = Type;
374 InteractionType = Type;
375 bHide = bStartHidden;
379 bCustomInteraction =
true;
380 CustomInteractionText = CustomText;
384 bCustomInteraction =
true;
385 CustomInteractionText = CustomText;
386 bShowButton = bShowButtonPrompt;
396 if(InteractionType !=
Other.InteractionType)
418USTRUCT(BlueprintType)
425 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=
"Interaction")
428 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Interaction")
431 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Interaction")
433 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Interaction")
434 bool bAIControlled = false;
437 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Interaction")
438 bool bShowMenu = false;
439 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Interaction")
440 bool bShowDefault = false;
442 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Interaction")
443 int32 DefaultInteraction = 0;
463 StimuliType = Stimuli;
468 StimuliType = Stimuli;
475 if(InteractionTypes.IsValidIndex(DefaultInteraction))
477 Default = InteractionTypes[DefaultInteraction];
485 for(
const auto& InteractionType : InteractionTypes)
489 Type = InteractionType;
498 for(
auto& InteractionType : InteractionTypes)
502 InteractionType.bHide = bValue;
510 for(
auto& InteractionType : InteractionTypes)
512 InteractionType.bHide =
true;
515 InteractionType.bHide =
false;
521 for(
auto& InteractionType : InteractionTypes)
523 InteractionType.bHide =
true;
524 if(
Interaction == InteractionType.CustomInteractionText)
526 InteractionType.bHide =
false;
533 for(
auto& InteractionType : InteractionTypes)
537 InteractionType.bAvailable = bValue;
545 for(
auto& InteractionType : InteractionTypes)
549 InteractionType.bHold = bValue;
558 TArray<FInteractionType> VisibleInteractions;
566 return VisibleInteractions;
574 InteractionTypes.Empty();
579 DefaultInteraction = -1;
587 None.bShowDefault =
true;
594 if(InteractionTypes !=
Other.InteractionTypes)
598 if(DefaultInteraction !=
Other.DefaultInteraction)
602 if(bShowDefault !=
Other.bShowDefault)
611USTRUCT(BlueprintType)
616 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=
"Player Death")
617 FString Attacker = "Attacker";
618 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Player Death")
619 FString Victim = "Victim";
620 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Player Death")
621 AActor* AttackerActor =
nullptr;
622 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Player Death")
623 AActor* VictimActor =
nullptr;
625 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Player Death")
626 class APlayerState* AttackerPlayerState =
nullptr;
627 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Player Death")
628 class APlayerState* VictimPlayerState =
nullptr;
630 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Player Death")
631 int32 AttackerTeamID = 0;
632 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Player Death")
633 int32 VictimTeamID = 0;
635 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Player Death")
637 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Player Death")
638 FString WeaponID = "Weapon";
640 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Player Death")
641 bool bAIAttacker = false;
642 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Player Death")
643 bool bAIVictim = false;
645 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Player Death")
646 bool bSelfDeath = false;
647 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Player Death")
648 bool bTeamKill = false;
649 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Player Death")
650 bool bStealthKill = false;
668USTRUCT(BlueprintType)
673 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=
"Input")
675 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Input")
680USTRUCT(BlueprintType)
686 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=
"General")
717USTRUCT(BlueprintType)
725 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=
"Character Traits")
727 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Character Traits")
729 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
Character Traits")
743 Level = StartingLevel;
758 return Level > LevelBefore;
764 int32 PrevLevel =
Level;
774 return Level != PrevLevel;
778USTRUCT(BlueprintType)
783 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=
"General")
785 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
General")
787 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
General")
789 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="
General")
790 FText ValueFormat = FText::FromString("{0}/{1}
");
791 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="General")
792 bool bEditable = false;
793 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="General")
794 UTexture2D* Icon = nullptr;
796 explicit FSkill(const FCharacterSkill& CharacterSkill)
798 FString LastTagPart = "";
799 CharacterSkill.Name.GetTagName().ToString().Split(TEXT(".
"), nullptr, &LastTagPart, ESearchCase::IgnoreCase, ESearchDir::FromEnd);
801 Value = CharacterSkill.Level;
802 Value2 = CharacterSkill.XP;
803 ValueFormat = FText::FromString("{0}
");
813USTRUCT(BlueprintType)
814struct FCharacterBaseSkills
818 //- Melee Damage, How Easily Pushed Over //
819 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Character Traits
")
820 FCharacterSkill Strength = FCharacterSkill(SkillTags::Strength, 1);
821 int32 GetStrength() const {return Strength.Level;};
822 bool AddStrengthXP(const float Value) {return Strength.AddXP(Value);};
824 //- How quickly spotting Enemies //
825 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Character Traits
")
826 FCharacterSkill Perception = FCharacterSkill(SkillTags::Perception, 1);
827 int32 GetPerception() const {return Perception.Level;};
828 bool AddPerceptionXP(const float Value) {return Perception.AddXP(Value);};
830 //- Health Points, hp of body parts,
831 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Character Traits
")
832 FCharacterSkill Endurance = FCharacterSkill(SkillTags::Endurance, 1);
833 int32 GetEndurance() const {return Endurance.Level;};
834 bool AddEnduranceXP(const float Value) {return Endurance.AddXP(Value);};
836 //- Companion Health,
837 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Character Traits
")
838 FCharacterSkill Charisma = FCharacterSkill(SkillTags::Charisma, 1);
839 int32 GetCharisma() const {return Charisma.Level;};
840 bool AddCharismaXP(const float Value) {return Charisma.AddXP(Value);};
842 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Character Traits
")
843 FCharacterSkill Intelligence = FCharacterSkill(SkillTags::Intelligence, 1);
844 int32 GetIntelligence() const {return Intelligence.Level;};
845 bool AddIntelligenceXP(const float Value) {return Intelligence.AddXP(Value);};
848 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Character Traits
")
849 FCharacterSkill Agility = FCharacterSkill(SkillTags::Agility, 1);
850 int32 GetAgility() const {return Agility.Level;};
851 bool AddAgilityXP(const float Value) {return Agility.AddXP(Value);};
854 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Character Traits
")
855 FCharacterSkill WeaponSkill = FCharacterSkill(SkillTags::WeaponSkill, 1);
856 int32 GetWeaponSkill() const {return WeaponSkill.Level;};
857 bool AddWeaponSkillXP(const float Value) {return WeaponSkill.AddXP(Value);};
859 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Character Traits
")
860 FCharacterSkill Stealth = FCharacterSkill(SkillTags::Stealth, 1);
861 int32 GetStealth() const {return Stealth.Level;};
862 bool AddStealthXP(const float Value) {return Stealth.AddXP(Value);};
864 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Character Traits
")
865 FCharacterSkill Luck = FCharacterSkill(SkillTags::Luck, 1);
866 int32 GetLuck() const {return Luck.Level;};
867 bool AddLuckXP(const float Value) {return Luck.AddXP(Value);};
869 int32 GetSkillPoints() const {return SkillPoints;};
873 void AddSkillXP(const FGameplayTag& Name, const int32 Value)
875 for(const auto& Skill : GetAllSkillsRef())
877 if(Skill == nullptr){continue;}
878 if(Skill->Name == Name)
884 void AddSkillLevel(const FGameplayTag& Name, const bool bIncrease)
886 for(const auto& Skill : GetAllSkillsRef())
888 if(Skill == nullptr){continue;}
889 if(Skill->Name == Name)
891 Skill->AddLevel(bIncrease);
895 void AddSkillLevelByName(const FString& Name, const bool bIncrease)
897 FCharacterSkill* Skill = GetSkillByName(Name);
899 // Get All Skill Points,
900 // Check we Have enough to Add.
903 // Mofify SkillPoints.
904 if(bIncrease && GetSkillPoints() <= 0)
908 const bool bChangedLevel = Skill->AddLevel(bIncrease);
909 if(bChangedLevel == false){return;}
920 FCharacterSkill* GetSkillByName(const FString& Name)
922 for(const auto& Skill : GetAllSkillsRef())
924 FString LastTagPart = "";
925 Skill->Name.GetTagName().ToString().Split(TEXT(".
"), nullptr, &LastTagPart, ESearchCase::IgnoreCase, ESearchDir::FromEnd);
926 if(Name == LastTagPart)
933 FCharacterSkill* GetSkillByTag(const FGameplayTag& Name)
935 for(const auto& Skill : GetAllSkillsRef())
937 if(Skill == nullptr){continue;}
938 if(Skill->Name == Name)
950 TArray<FCharacterSkill> GetAllSkills() const
952 TArray<FCharacterSkill> Skills;
953 Skills.Add(Strength);
954 Skills.Add(Perception);
955 Skills.Add(Endurance);
956 Skills.Add(Charisma);
957 Skills.Add(Intelligence);
959 Skills.Add(WeaponSkill);
964 TArray<FCharacterSkill*> GetAllSkillsRef()
966 TArray<FCharacterSkill*> Skills;
967 Skills.Add(&Strength);
968 Skills.Add(&Perception);
969 Skills.Add(&Endurance);
970 Skills.Add(&Charisma);
971 Skills.Add(&Intelligence);
972 Skills.Add(&Agility);
973 Skills.Add(&WeaponSkill);
974 Skills.Add(&Stealth);
979 int32 GetNumberOfSkills() const
981 return GetAllSkills().Num();
985 FCharacterBaseSkills()
992 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Character Traits
")
993 int32 SkillPoints = 10;
1000// UENUM(BlueprintType)
1001// enum class EGamepadButton : uint8
1003// GamepadFaceButtonBottom,
1008// UENUM(BlueprintType)
1009// enum class EKeyboardMouseButton : uint8
1016// USTRUCT(BlueprintType)
1017// struct FCharacterComponentRequirements
1021// UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Character")
1022// bool bController = false;
1023// UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Character")
1024// bool bPlayerController = false;
1025// UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Character")
1026// bool bAIController = false;
1027// UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Character")
1028// bool bSkeletalMesh = false;
1029// UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Character")
1030// bool bAnimationInstance = false;
1031// UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Character")
1032// bool bPawn = false;
1033// UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Character")
1034// bool bHUDReference = false;
1035// UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Character")
1036// bool bShouldDestroyOnDeath = false;
1040UENUM(Blueprintable, BlueprintType)
1041enum class EUnlockableCategory : uint8
1051enum class EDifficultyLevel : uint8
1063UENUM(Blueprintable, BlueprintType, meta = (ScriptName = "EMatchStatePython
"))
1064enum class EMatchState : uint8
1075USTRUCT(BlueprintType)
1080 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Match State
")
1081 EMatchState MatchState = EMatchState::Default;
1082 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Match State
")
1083 bool bMatchTimed = false;
1084 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Match State
")
1085 int32 TimeRemaining = 0;
1087 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Match State
")
1088 EMatchState RoundState = EMatchState::Default;
1089 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Match State
")
1091 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Match State
")
1092 bool bRoundTimed = false;
1093 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Match State
")
1094 int32 RoundTimeRemaining = 0;
1097 static FMatchState Empty()
1099 const FMatchState EmptyMatchState;
1100 return EmptyMatchState;
1105USTRUCT(BlueprintType)
1106struct FUnlockItemMethod : public FTableRowBase
1110 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Profile Picture
")
1111 bool bRequiresUnlock = false;
1112 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Profile Picture
")
1113 int32 RequiredLevel = -1;
1114 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Profile Picture
")
1115 int32 RequiredAchievementID = -1;
1116 //- Mod / Beta Tester / Special Player //
1117 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Profile Picture
")
1118 int32 RequiredPlayerStatusID = -1;
1123USTRUCT(BlueprintType)
1124struct FProfilePicture : public FTableRowBase
1128 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Profile Picture
")
1129 class UTexture2D* Image = nullptr;
1130 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Profile Picture
")
1131 bool bHasTooltip = false;
1132 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Profile Picture
")
1134 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Profile Picture
")
1136 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Profile Picture
")
1137 EUnlockableCategory Category = EUnlockableCategory::Default;
1138 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Profile Picture
")
1144USTRUCT(BlueprintType)
1145struct FAchievement : public FTableRowBase
1149 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Achievements
")
1151 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Achievements
")
1153 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Achievements
")
1155 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Achievements
")
1156 class UTexture2D* Image = nullptr;
1157 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Achievements
")
1158 TArray<bool> Requirements;
1159 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Achievements
")
1161 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Achievements
")
1162 bool bHidden = false;
1164 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Achievements
")
1165 bool bUnlocked = false;
1166 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Achievements
")
1167 float Progress = 0.0f;
1168 // UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Achievements
")
1171 // Implementing the '==' operator for the struct
1172 bool operator==(const FAchievement& Other) const
1174 return ID == Other.ID;
1178//- Stats for the current multiplayer game //
1179USTRUCT(BlueprintType)
1180struct FMultiplayerPlayerStats : public FTableRowBase
1184 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Mutliplayer
")
1185 FString DisplayName = "Name
";
1186 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Mutliplayer
")
1188 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Mutliplayer
")
1189 int32 TeamKills = 0;
1190 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Mutliplayer
")
1191 int32 SelfKills = 0;
1192 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Mutliplayer
")
1194 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Mutliplayer
")
1196 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Mutliplayer
")
1197 int32 Headshots = 0;
1198 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Mutliplayer
")
1201 // TArray<FPlayerDeath> Deaths
1202 bool IsValid() const
1204 if(DisplayName == "Name
"){return false;}
1207 FMultiplayerPlayerStats AddKill()
1212 FMultiplayerPlayerStats AddTeamKill()
1217 FMultiplayerPlayerStats AddSelfKill()
1223 FMultiplayerPlayerStats AddDeath()
1228 FMultiplayerPlayerStats AddXP(const float Amount)
1230 XP = FMath::Max(0.0f, XP + Amount);
1237USTRUCT(BlueprintType)
1238struct FUserProfile : public FTableRowBase
1242 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1243 FString DisplayName = "Name
";
1244 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1245 FString Nickname = "Name
";
1246 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1248 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1249 int32 ProfilePictureID = 1;
1250 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1251 TArray<int32> Achievements;
1252 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1254 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1255 int32 QuestsCompleted = 0;
1256 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1257 float TotalPlayTime = 0.0f;
1258 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1259 int32 MatchesWon = 0;
1260 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1261 int32 MatchesPlayed = 0;
1262 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1264 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1266 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1268 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1269 int32 Headshots = 0;
1270 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1271 float HighestGameScore = 0;
1272 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1273 int32 ChallengesCompleted = 0;
1274 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1275 int32 Collectables = 0;
1276 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1277 FString TopWeapon = "Weapon
";
1278 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1281 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="User Profile
")
1282 bool bReady = false;
1285 //@TODO Create Formula for XP Curve
1286 int32 XPToLevelUp = 1000;//(999 * ((XP + 1) / 100));
1288 bool IsValid() const
1290 if(DisplayName == "Name
"){return false;}
1293 FUserProfile AddKill()
1298 FUserProfile AddDeath()
1303 float XPProgress() const
1305 return static_cast<float>(XP % XPToLevelUp) / static_cast<float>(XPToLevelUp);
1307 FUserProfile AddXP(const int32 Value)
1313 int32 GetPlayerLevel() const
1315 return (XP / XPToLevelUp);
1320 // Implementing the '==' operator for the struct
1321 bool operator==(const FUserProfile& Other) const
1323 if(DisplayName == Other.DisplayName)
1327 // if(ID == Other.ID &&
1328 // DisplayName == Other.DisplayName)
EInteractionType
Definition BaseData.h:149
@ Use
Definition InteractionComponent.cpp:798
EBodyPartName
Definition BaseData.h:133
EAIStimuliType
Definition BaseData.h:198
DECLARE_CYCLE_STAT_EXTERN(TEXT("BPLib"), STATGROUP_BaseHelpers_BPLib, STATGROUP_BaseHelpers, BASEHELPERS_API)
ESize
Definition BaseData.h:111
DECLARE_LOG_CATEGORY_EXTERN(LogBaseHelpers, Display, All)
EAIActionType
Definition BaseData.h:219
ESoundSource
Definition BaseData.h:73
static int32 XP_PER_LEVEL
Definition BaseData.h:707
static int32 MIN_SKILL_LEVEL
Definition BaseData.h:708
EGameControllerType
Definition BaseData.h:97
EDeathType
Definition BaseData.h:53
EVehicleMode
Definition BaseData.h:124
EDamageType
Definition BaseData.h:33
DECLARE_LOG_CATEGORY_CLASS(LogBasePlayerState, Display, All)
static int32 MAX_SKILL_LEVEL
Definition BaseData.h:706
static int32 DebugCharacterComponents
Definition BaseData.h:28
DECLARE_STATS_GROUP(TEXT("LineOfSight Stat Group"), STATGROUP_LineOfSight, STATCAT_Advanced)
Definition Health.Build.cs:6
Definition Interaction.Build.cs:6
void AddSkillLevelByName(const FString &Name, const bool bIncrease)
Definition BaseData.h:895
Definition BaseData.h:310
Definition BaseData.h:682
The FCharacterSkill struct represents a skill of a character.
Definition BaseData.h:719
bool AddXP(const float Value)
Definition BaseData.h:751
FCharacterSkill(const FGameplayTag SkillName)
Definition BaseData.h:736
bool AddLevel(const bool bIncrease)
Definition BaseData.h:762
FCharacterSkill(const FGameplayTag SkillName, const int32 StartingLevel)
Definition BaseData.h:740
Definition BaseData.h:420
bool SetInteractionHidden(const EInteractionType Interaction, const bool bValue)
Definition BaseData.h:496
bool GetInteraction(FInteractionType &Type, const EInteractionType Interaction) const
Definition BaseData.h:483
bool SetInteractionAvailable(const EInteractionType Interaction, const bool bValue)
Definition BaseData.h:531
static FInteractionData None()
Definition BaseData.h:583
bool SetInteractionHold(const EInteractionType Interaction, const bool bValue)
Definition BaseData.h:543
void SetOnlyInteractionVisible(const EInteractionType Interaction)
Definition BaseData.h:508
void SetDefault(const EInteractionType Default, const bool bRemoveOthers=true)
Definition BaseData.h:570
void SetOnlyInteractionVisible(const FString &Interaction)
Definition BaseData.h:519
FInteractionData(const EInteractionType Default)
Definition BaseData.h:455
bool operator==(const FInteractionData &Other) const
Definition BaseData.h:591
FInteractionData(const FInteractionType Default, const EAIStimuliType Stimuli)
Definition BaseData.h:465
bool GetDefaultInteraction(FInteractionType &Default) const
Definition BaseData.h:473
TArray< FInteractionType > GetVisibleInteractions() const
Definition BaseData.h:556
FInteractionData(const EInteractionType Default, const EAIStimuliType Stimuli)
Definition BaseData.h:460
Definition BaseData.h:333
static FInteractionType None()
Definition BaseData.h:388
FInteractionType(const FString &CustomText, const bool bShowButtonPrompt)
Definition BaseData.h:382
bool operator==(const FInteractionType &Other) const
Definition BaseData.h:393
FInteractionType(const FString &CustomText)
Definition BaseData.h:377
FInteractionType(const EInteractionType Type, const bool bStartHidden)
Definition BaseData.h:372
FInteractionType(const EInteractionType Type)
Definition BaseData.h:368
Definition BaseData.h:613
Definition BaseData.h:780
Definition BaseData.h:253
FUniqueID()
Definition BaseData.h:273
FUniqueID(const FString &NewID, const int32 NewUniqueID)
Definition BaseData.h:281
bool IsUnique() const
Definition BaseData.h:267
bool operator==(const FUniqueID &Other) const
Definition BaseData.h:294
bool operator!=(const FUniqueID &Other) const
Definition BaseData.h:298
bool IsValid() const
Definition BaseData.h:287
FUniqueID(const FString &NewID)
Definition BaseData.h:277
int32 GetUniqueNumber() const
Definition BaseData.h:263