5#include "CoreMinimal.h"
7#include "ProjectXGameModeVIP.generated.h"
16class UAfflictionInstance;
23 virtual void OnDeath(AController* Killed, AController* Killer, TSubclassOf<class UProjectXDamageType> DamageType,
bool bWasHeadshot)
override;
24 virtual void CollectGamePlayObjects()
override;
25 bool GetAverageVIPPosition(uint8
Team, FVector& AveragePosition);
26 virtual void InitGameState()
override;
28 UFUNCTION(BlueprintCallable, BlueprintPure)
29 int32 GetNumberOfVIPS()
const {
return NumberOfVIPs; }
30 UFUNCTION(BlueprintCallable, BlueprintPure)
31 bool IsValidVIPID(uint8 VIPID)
const {
return VIPID >=0 && VIPID < NumberOfVIPs; }
35 void UpdateVIPTeamList(uint8
Team,uint8 VIPID);
37 void OnVIPCharacterSpawned(APawn* NewPawn);
39 void InitializeVIPs();
41 virtual APawn* SpawnDefaultPawnAtTransform_Implementation(AController* NewPlayer, const FTransform& SpawnTransform) override;
42 virtual
void HandleMatchWarmupEnded() override;
46 UPROPERTY(EditDefaultsOnly, Category =
GameMode)
47 TSubclassOf<class ULocalMessage> VIPBroadcastMessage;
49 UPROPERTY(EditDefaultsOnly)
50 TSubclassOf<UAfflictionInstance> VIPAffliction;
52 UPROPERTY(EditDefaultsOnly)
53 int32 MaximumSpawnRange = 30000.0;
55 UPROPERTY(EditDefaultsOnly)
56 int32 MinimumSpawnRange = 60000.0;
58 UPROPERTY(EditDefaultsOnly)
59 int32 NumberOfVIPs = 3;
61 UPROPERTY(EditDefaultsOnly)
62 float NewVIPSpawnRadius = 30000.0;
64 UPROPERTY(EditDefaultsOnly)
65 float NewVIPDelay = 4.0f;
66 FTimerHandle UpdateVIPHandle;
67 float VIPCheckTimer = 2.0f;
EVIPEvent
Definition: ProjectXGameModeVIP.h:11
Definition: ProjectXGameMode.h:115
Definition: ProjectXGameModeVIP.h:20
Definition: ProjectXPlayerState.h:238