LEAP Documentation 40220
Documentation for the LEAP project
VoteInstanceKick.h
Go to the documentation of this file.
1// Copyright Blue Isle Studios Inc 2018. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "GameFramework/VoteInstance.h"
7#include "VoteInstanceKick.generated.h"
8
9#define VOTE_YES "Y"
10#define VOTE_NO "N"
11
15UCLASS(Config = Game)
16class PROJECTX_API UVoteInstanceKick : public UVoteInstance
17{
18 GENERATED_UCLASS_BODY()
19
20public:
21 virtual void BeginPlay() override;
22 virtual void PostNetReceive() override;
23
24//~ Begin UVoteInstance Interface
25public:
26 virtual bool CanInstigateVote(UVoteManager* VoteManager, APlayerState* VoteInstigator, const FName& Option) const override;
27 virtual void InitializeVote(APlayerState* VoteInstigator, const FName& Option) override;
28 virtual void SubmitVote(APlayerState* Voter, const FName& Option) override;
29 virtual int32 GetTotalConsideredPlayers_Implementation() override;
30 virtual void OnVoteResult_Implementation(const FVoteOption& VoteOption) override;
31//~ End UVoteInstance Interface
32
33public:
34 UFUNCTION(BlueprintPure, Category = VoteInstanceKick)
35 const FName& GetKickTargetID() const { return KickTargetID; }
36 UFUNCTION(BlueprintPure, Category = VoteInstanceKick)
37 APlayerState* GetKickTarget() const { return KickTarget; }
38
39protected:
40 UFUNCTION()
41 virtual void OnRep_KickTargetID();
42 virtual void VoteTimerComplete() override;
43
44protected:
45 UPROPERTY()
46 bool bReceiveInitialRep = false;
47
48 //NOTE: IS APlayerState::PlayerId NOT APlayerState::UniqueNetId!
49 UPROPERTY(ReplicatedUsing = OnRep_KickTargetID)
50 FName KickTargetID = "";
51
52 UPROPERTY()
53 APlayerState* KickTarget = NULL;
54
55 UPROPERTY(EditDefaultsOnly)
56 TSubclassOf<class UAdvancedUserWidget> KickVoteWidget = NULL;
57
58};
Definition: AdvancedUserWidget.h:30
Definition: VoteInstanceKick.h:17