Space Plunder
Loading...
Searching...
No Matches
CustomCharacterBase.h
Go to the documentation of this file.
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "Data/HealthData.h"
8#include "Data/MenuData.h"
14#include "CustomCharacterBase.generated.h"
15
16DECLARE_LOG_CATEGORY_EXTERN(LogCustomCharacters, Display, All);
17
18
19// DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FOnCharacterDeath, FPlayerDeath&, PlayerDeath, APawn*, OwnerPawn);
20
21
29UCLASS()
31{
32 GENERATED_BODY()
33
34public:
35 ACustomCharacterBase(const FObjectInitializer& ObjectInitializer);
36
37 // UPROPERTY(BlueprintAssignable)
38 // FOnCharacterDeath OnCharacterDeath;
39
40 //? Move To ALS? //
41 // Helper Functions
42 UFUNCTION(BlueprintPure, Category = "Player")
43 bool IsCrouching() const{return Stance == EALSStance::Crouching;};
44
45 virtual void NotifyHit(UPrimitiveComponent* MyComp, AActor* Other, UPrimitiveComponent* OtherComp, bool bSelfMoved, FVector HitLocation, FVector HitNormal, FVector NormalImpulse, const FHitResult& Hit) override;
46
47
48 //- Character Interface //
49 UFUNCTION(BlueprintCallable, Category = "Custom ALS")
50 virtual ECharacterType GetCharacterType() const override;
51 UFUNCTION(BlueprintCallable, Category = "Custom ALS")
52 virtual EFactionType GetCharacterFaction() const override;
53 UFUNCTION(BlueprintCallable, Category = "Custom ALS")
54 virtual bool GetIsDead() const override{return bIsDead;};
55 UFUNCTION(BlueprintCallable, Category = "Custom ALS")
56 virtual void StartThreatIndication(AActor* PawnThreat) override;
57 UFUNCTION(BlueprintImplementableEvent, Category = "Custom ALS")
58 void OnStartThreatIndication(AActor* PawnThreat);
59 UFUNCTION(BlueprintCallable, Category = "Custom ALS")
60 virtual void StopThreatIndication() override;
61 UFUNCTION(BlueprintImplementableEvent, Category = "Custom ALS")
62 void OnStopThreatIndication();
63 UFUNCTION(BlueprintCallable, Category = "Custom ALS")
64 virtual void UpdateThreatIndication(const FVector& Location, const float DetectionAmount) override;
65 UFUNCTION(BlueprintImplementableEvent, Category = "Custom ALS")
66 void OnUpdateThreatIndication(const FVector& Location, const float DetectionAmount);
67 // UFUNCTION(BlueprintCallable, Category = "Custom ALS")
68 // virtual USkeletalMeshComponent* GetCharacterMesh() const override {return GetMesh();};
69 UFUNCTION(BlueprintCallable, Category = "Custom ALS")
70 virtual USkeletalMeshComponent* GetCharacterSecondaryMesh() const override {return GetCustomMesh();};
71 // UFUNCTION(BlueprintCallable, Category = "Custom ALS")
72 virtual void SetCharacterVehicleMode(const EVehicleMode Mode) override;
73
74
75 virtual bool GetCharacterHealth(float& Health, float& MaxHealth) const override;
76
77 UFUNCTION(BlueprintImplementableEvent, Category="Custom ALS")
78 void OnCharacterVehicleModeChanged(const EVehicleMode Mode);
79
80 //- @TODO Add to Character Interface
81 UFUNCTION(BlueprintCallable, Category = "Interaction")
82 virtual void ForceWakeUp();
83
84
85 virtual void ReceiveStartFocus_Implementation(AActor* Caller) override;
86 virtual void ReceiveEndFocus_Implementation(AActor* Caller) override;
87
88 //- Interaction Interface //
89 // UFUNCTION(BlueprintCallable, Category = "Interaction")
90 // virtual void OnInteract(AActor* Caller, const int32 InteractionType = 0) override;
91 // UFUNCTION(BlueprintCallable, Category = "Interaction")
92 // virtual void OnEndInteract(AActor* Caller) override;
93 // UFUNCTION(BlueprintCallable, Category = "Interaction")
94 // virtual bool OnOverlap(AActor* Caller) override;
95 // UFUNCTION(BlueprintCallable, Category = "Interaction")
96 // virtual void OnEndOverlap(AActor* Caller) override;
97 // UFUNCTION(BlueprintCallable, Category = "Interaction")
98 // virtual void StartFocus() override;
99 // UFUNCTION(BlueprintCallable, Category = "Interaction")
100 // virtual void EndFocus() override;
101 // UFUNCTION(BlueprintCallable, Category = "Interaction")
102 // virtual void ToggleSwitch(AActor* Caller, bool bOn) override;
103 // UFUNCTION(BlueprintCallable, Category = "Interaction")
104 // virtual FVector GetInteractionLocation() const override;
105 // UFUNCTION(BlueprintCallable, Category = "Interaction")
106 // virtual UPrimitiveComponent* GetGrabComponent() const override;
107 // UFUNCTION(BlueprintCallable, Category = "Interaction")
108 // virtual float GetAimAssistInfluence() const override {return AimAssistInfluence;};
109
110 // UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Aim Assist")
111 // float AimAssistInfluence = 1.0f;
112
113
114
115 //- Base Interface //
116 UFUNCTION(BlueprintCallable, Category = "Base Helpers")
117 virtual void SetGravityEnabled(const bool bValue) override;
118 UFUNCTION(BlueprintCallable, Category = "Interaction")
119 virtual FString GetObjectDisplayName() const override {return DisplayName;};
120 UFUNCTION(Server, Reliable)
121 virtual void DestroyActor(AActor* ActorToDestroy) override;
122 UFUNCTION(NetMulticast, Reliable)
123 virtual void DestroyActorOnClient(AActor* ActorToDestroy) override;
124 UFUNCTION(BlueprintCallable, Category = "Base Helpers")
125 virtual bool GetIsCharacter() const override {return true;};
126
127 // virtual void OnFinishSpawning() override;
128
129
130 //- Setters //
131 UFUNCTION(BlueprintCallable, Category = "Interaction")
132 void SetPlayerName(FString Username){DisplayName = Username;};
133
134 //- Character Weapons Interface //
135 UFUNCTION(BlueprintCallable, Category = "Pickups")
136 virtual int32 PickupGunEvent(const FWeaponData_T In_WeaponData) override;
137 UFUNCTION(BlueprintCallable, Category = "Pickups")
138 virtual bool PickupGunCheck(const FWeaponData_T& In_WeaponData) override;
139 UFUNCTION(BlueprintCallable, Category = "Pickups")
140 virtual bool PickupAttachmentCheck(const FWeaponAttachment& In_WeaponAttachmentData) override;
141 UFUNCTION(BlueprintCallable, Category = "Pickups")
142 virtual void PickupAttachmentEvent(const FString& WeaponAttachmentID) override;
143
144 //- Shooting Component Bind //
145 UFUNCTION()
146 virtual void WeaponEquipped(const TArray<FWeaponData_T>& Weapons, const int32 CurrentWeaponIndex);
147 UFUNCTION()
148 virtual void WeaponStateChanged(const struct FPlayerWeaponState& PlayerWeaponState);
149
150 //- ALS overridden Functions //
151 virtual void ForwardMovementAction(float Value) override;
152 virtual void RightMovementAction(float Value) override;
153
154 virtual void RagdollStart() override;
155 virtual void RagdollEnd() override;
156 virtual void Landed(const FHitResult& Hit) override;
157 virtual EALSGait GetAllowedGait() const override;
158 virtual bool CanSprint() const override;
159 virtual void SprintAction(bool bValue) override;
160 virtual void JumpAction(bool bValue) override;
161 virtual bool CanJumpInternal_Implementation() const override;
162 virtual void StanceAction() override;
163 virtual void OnJumped_Implementation() override;
164
165 void FlyUp();
166 void FlyDown();
167
168 //@ TODO Remove This and Replace with OnPawnSpawned //
169 //- Use for multiplayer instead of Begin Play //
170 UFUNCTION(Server, Reliable)
171 void Server_OnPawnSpawn();
172 // virtual void OnPawnSpawn();
173 virtual void OnPawnSpawned() override;
175 UFUNCTION(BlueprintImplementableEvent, Category="Player", meta=(DisplayName = "On Pawn Spawn"))
176 void ReceiveOnPawnSpawn();
177
178protected:
179 virtual void BeginPlay() override;
180 virtual void Tick(const float DeltaTime) override;
181 virtual void SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) override;
182
183
184 // UFUNCTION(BlueprintCallable, Category = "Custom ALS")
185 // void ShowMeshOutline(const bool bOn) const;
186
187
188 //- Components //
189 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category= "Health")
190 class UCharacterHealthComponent* CharacterHealthComponent;
191 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category= "Health")
192 class UHealthBarWidgetComponent* HealthBarComponent;
193 // UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category= "Interaction")
194 // class UInteractionComponent* InteractionComponent;
195 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Hit Reactions")
196 class UPhysicalAnimationComponent* PhysicalAnimationComponent;
197
198 // UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Hit Reactions")
199 // class UAudioReactionComponent* AudioReactionComponent;
200
201 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Hit Reactions")
202 class UPhysicalHitReactionsComponent* PhysicalHitReactionComponent;
203 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Melee")
204 class UMeleeComponent* MeleeComponent;
205 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Footsteps")
206 class UFootstepFXHandler* FootstepsComponent;
207
209 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Aim Assist")
210 class USphereComponent* AimAssistSphereComponent;
211
212
213 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category= "Shooting")
214 class URecoilAnimationComponent* RecoilAnimationComponent;
215 // UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category= "Shooting")
216 // class UCharacterShootingComponent* ShootingComponent;
217
218
219 UPROPERTY(BlueprintReadOnly, Category="Mantle")
220 class UALSMantleComponent* MantleComponentReference;
221 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Custom ALS")
222 USkeletalMeshComponent* CustomSkeletalMesh;
223 // UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Pickups")
224 // USceneComponent* ThrowPoint;
225 // UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = "Weapon")
226 // UChildActorComponent* CurrentWeapon;
227
228 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Custom ALS|Debugging")
229 float MultiplayerStartDelay = 0.5f;
230
231
232 //- Velocity of a regular jump ~420 so remove that first
233 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Custom ALS|Character")
234 float FallDamageOffset = 550.0f;
235 //- At the fall height, eg. 1000.f divide by x
236 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Custom ALS|Character")
237 float FallDamageDivisor = 5.0f;
238
239 // UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Interaction")
240 // bool bShouldPickupOnOverlap = false;
241
242 // UPROPERTY(EditAnywhere, BlueprintReadOnly, Category= "Player|Material")
243 // bool bAlwaysShowOutline = false;
244
245 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Custom ALS")
247 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Name")
248 FString DisplayName = "Default Name";
249
250
251 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category= "Custom ALS|Stamina")
252 bool bForceWalkWhileAiming = true;
253
254
255
256 //@TODO Move these to a PhysicalStateComponent //
257 //- Stamina //
258 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Stamina")
259 bool bToggleSprint = true;
260 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category= "Custom ALS|Stamina")
261 bool bSprinting = true;
263 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Stamina")
264 float SprintDeadZone = 0.5f;
265
266 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Flying")
267 float FlyingScaleValue = 1.0f;
268 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category= "Custom ALS|Flying")
269 bool bIsFlyingUp = false;
270 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category= "Custom ALS|Flying")
271 bool bIsFlyingDown = false;
272
273 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category= "Custom ALS|Stamina")
274 float Stamina = 100.0f;
275 //- Minimum required before an action is available, Percent of Max Stamina (0.2 = 20% of MaxStamina) //
276 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Stamina")
277 float MinRequiredStamina = 0.2f;
278 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Stamina")
279 float MaxStamina = 60.0f;
280 float MaxStaminaDefault = 60.0f;
281 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Stamina")
282 float MaxPossibleStamina = 150.0f;
283 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Stamina")
284 float MinStamina = 10.0f;
285
286 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Stamina")
287 float StaminaDepletionRate = 0.05f;
288 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Stamina")
289 float StaminaDepletionIncrement = 0.5f;
290 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Stamina")
291 float StaminaRechargeRate = 0.05f;
292 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Stamina")
293 float StaminaRechargeIncrement = 0.5f;
294
295 //- How long before it starts recharging //
296 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Stamina")
297 float StaminaRechargeDelayTime = 2.0f;
298 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Stamina")
299 float StaminaJumpAmount = 10.0f;
300
301 //- Hit/Pushing //
302 // UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Pushing")
303 // bool bCanBePushed = true;
304 // UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Pushing")
305 // float HitVelocityThreshold = 50.0f;
306 // UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Pushing")
307 // float HitVelocityMultiplier = 5.0f;
308 // UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Pushing")
309 // float HitReactionMultiplier = 0.01f;
310 // UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Pushing")
311 // bool bPushHitReaction = true;
312 // UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Pushing")
313 // bool bAddMovementInput = true;
314 // UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Pushing")
315 // bool bAddCharacterMovement = true;
316 // //- How much Velocity by self to fall over //
317 // UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Pushing")
318 // float PushFallVelocityThreshold = 200.0f;
319 // //- How much Velocity by someone Pushing to fall over //
320 // UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Pushing")
321 // float PushedFallVelocityThreshold = 500.0f;
322 // UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS|Pushing")
323 // float PushedFallOverWaitTime = 2.0f;
324
325 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS")
326 float ThrowStrength = 500.0f;
327
328 UFUNCTION(BlueprintCallable, Category="Custom ALS")
329 bool GetHandsTied() const {return bHandsTied;}
330 UFUNCTION(BlueprintCallable, Category="Custom ALS")
331 virtual void SetHandsTied(const bool bValue = true);
332 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category= "Custom ALS")
333 bool bHandsTied = false;
334
335 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS")
336 float AimAssistRadius = 160.0f;
337 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category= "Custom ALS")
338 float AimAssistShrinkTime = 3.0f;
339
340 // void TakePointDamage(AActor* DamagedActor, float Damage, class AController* InstigatedBy, FVector HitLocation, class UPrimitiveComponent* FHitComponent, FName BoneName, FVector ShotFromDirection, const class UDamageType* DamageType, AActor* DamageCauser);
341 UFUNCTION()
342 virtual void AimAssistOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, const int32 OtherBodyIndex, const bool bFromSweep, const FHitResult& SweepResult);
343 UFUNCTION(BlueprintImplementableEvent, Category="Aim Assist")
344 void OnAimAssistOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, const int32 OtherBodyIndex, const bool bFromSweep, const FHitResult& SweepResult);
345 UFUNCTION()
346 virtual void AimAssistRevertSize();
347
348 // /Delegate
349 // UFUNCTION(BlueprintCallable, Category="Player")
350 // virtual void FallOver(const float WaitTime);
351 // UFUNCTION(BlueprintImplementableEvent, Category="Player")
352 // void OnFallOver(const float WaitTime);
353 //
354 // UFUNCTION(BlueprintCallable, Category="Player")
355 // virtual void GetUpFromFall();
356 // UFUNCTION(BlueprintImplementableEvent, Category="Player")
357 // void OnGetUpFromFall();
358
359
360
361
362 //- Health Component Functions //
363 UFUNCTION()
364 virtual void OnHealthAndShieldChanged(float Health, float MaxHealth, float ShieldHealth, float MaxShieldHealth, const class UDamageType* DamageType);
365 UFUNCTION()
366 virtual void OnInjuredBodyPart(const EBodyPartName InjuredBodyPart, const FVector& HitLocation, const TArray<FBodyPart>& AllBodyParts);
367 UFUNCTION()
368 virtual void OnShieldBreak();
369 UFUNCTION()
370 virtual void OnKnockedOut(const class UDamageType* DamageType, const float WaitTime);
371 UFUNCTION()
372 virtual void OnWakeUp();
373 UFUNCTION()
374 virtual void OnDeath(AActor* OwningActor, const EDeathType DeathType, AActor* DeathCauser, AController* DeathInstigator);
375 UFUNCTION()
376 virtual void OnFullDamageHit(AController* InstigatedBy, const float TotalDamage, const UDamageType* DamageType, const FName& HitBone, const FVector& HitLocation, const bool bKillingHit, const bool bInjuredPart);
377
378 FPlayerDeath GetPlayerDeathInfo(const EDeathType DeathType, AActor* DeathCauser, const AController* DeathInstigator) const;
379
380 UFUNCTION(BlueprintPure, BlueprintCallable, Category = "Custom ALS")
381 USkeletalMeshComponent* GetCustomMesh() const{return CustomSkeletalMesh;}
382
383 bool bIsNPC = false;
384 UPROPERTY(ReplicatedUsing=OnDeathReplicated)
385 bool bIsDead = false;
386
387 UFUNCTION()
388 virtual void OnDeathReplicated();
389
390 virtual void FirePressedAction();
391 virtual void SetupComponents(AController* ControllerReference = nullptr, AActor* HUDReference = nullptr, bool bIsLocallyControlled = false);
392
393 //- Save Load Game //
394 UFUNCTION(BlueprintCallable, Category = "Save Game")
395 virtual void SaveGameData();
396 UFUNCTION(BlueprintCallable, Category = "Save Game")
397 virtual void LoadGameData();
398
399 virtual bool SaveCharacterData();
400 virtual bool LoadCharacterData();
401
402
403 virtual void LoadComponentsSaveData();
404 virtual void SaveComponentsData();
405
406
407 //- Stamina //
408 virtual void UpdateStaminaHUD();
409 virtual void Sprinting();
410 virtual void StopSprinting();
411 virtual void RechargeStamina();
412 virtual void SetMaxStamina(const float AmountToAdd);
413
414
415 // UFUNCTION(BlueprintCallable, Category = "Interaction")
416 // virtual FInteractionData GetInteractionData() const override{return InteractionData;};
417 // UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Interaction")
418 // FInteractionData InteractionData = FInteractionData(EInteractionType::Talk, EAIStimuliType::Character);
419 //
420 // /** Interaction Data Manipulation, so Actors can change there Interaction Data struct from BP */
421 // //~ Interaction Data Manipulation ~//
422 // virtual bool SetInteractionHidden(const EInteractionType Interaction, const bool bValue) override
423 // {return InteractionData.SetInteractionHidden(Interaction, bValue);};
424 // virtual void SetOnlyInteractionVisible(const EInteractionType Interaction) override
425 // {InteractionData.SetOnlyInteractionVisible(Interaction);}
426 //
427 // virtual bool SetInteractionAvailable(const EInteractionType Interaction, const bool bValue) override
428 // {return InteractionData.SetInteractionAvailable(Interaction, bValue);}
429 //
430 // virtual bool SetInteractionHold(const EInteractionType Interaction, const bool bValue) override
431 // {return InteractionData.SetInteractionHold(Interaction, bValue);}
432 //
433 // virtual TArray<FInteractionType> GetVisibleInteractions() const override
434 // {return InteractionData.GetVisibleInteractions();}
435 // virtual bool GetInteraction(FInteractionType& Type, const EInteractionType Interaction) const override
436 // {return InteractionData.GetInteraction(Type, Interaction);}
437 // virtual bool GetDefaultInteraction(FInteractionType& Type) const override
438 // {return InteractionData.GetDefaultInteraction(Type);}
439
440 //~ Interaction Data Manipulation ~//
441
442
443 UPROPERTY(ReplicatedUsing=OnCharacterReadyReplicated, VisibleAnywhere, BlueprintReadOnly, Category="Character|Replication")
444 bool bCharacterReady = false;
445
446 UFUNCTION()
447 void OnCharacterReadyReplicated();
448
449private:
450
451 FTimerHandle StaminaTimerHandle;
452 FTimerHandle StaminaRechargeTimerHandle;
453 FTimerHandle FallOverTimerHandle;
454 FTimerHandle FlyingTimerHandle;
455
456
457 FTimerHandle AimAssistOverlapTimerHandle;
458
459};
ECharacterType
Definition AIDataTypes.h:73
EFactionType
Definition AIDataTypes.h:103
EALSGait
Definition ALSCharacterEnumLibrary.h:29
EBodyPartName
Definition BaseData.h:133
EDeathType
Definition BaseData.h:53
EVehicleMode
Definition BaseData.h:124
UCLASS(Blueprintable, BlueprintType, ClassGroup=(BucciGames), meta=(BlueprintSpawnableComponent)) class CHATSYSTEM_API UChatSystemComponent
Definition ChatSystemComponent.h:13
DECLARE_LOG_CATEGORY_EXTERN(LogCustomCharacters, Display, All)
Definition ALSCharacter.h:16
The base class for custom characters in the game. Inherits from various interfaces and provides imple...
Definition CustomCharacterBase.h:31
Definition Health.Build.cs:6
Definition BaseInterface.h:17
Definition BaseServer.h:16
Definition CharacterInterface.h:20
Definition CharacterWeaponPickups.h:17
Definition Interaction.Build.cs:6
Definition ALSMantleComponent.h:20
This component handles physical hit reactions for a character.
Definition HealthData.h:26
Definition BaseData.h:613
A struct that represents the state of a player's weapon.
Definition WeaponStructs.h:118
Definition WeaponStructs.h:501
Struct representing data of a weapon that changes.
Definition WeaponStructs.h:861