24 virtual void BeginPlay()
override;
72 UFUNCTION(BlueprintCallable, Category=
"Online GM")
73 virtual int32 GetCurrentRound()
const {
return Round;};
79 virtual void SpawnedPlayerDeath(
FPlayerDeath& PlayerDeath, APawn* PawnThatDied)
override;
80 virtual void SpawnedAIDeath(
FPlayerDeath& PlayerDeath, APawn* PawnThatDied)
override;
87 void AddDeathToKillFeed(
const FPlayerDeath& PlayerDeath,
const bool bPlayerDeath =
true);
105 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category=
"Game State")
109 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Score")
111 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Score")
112 int32 PlayerKilledScore = 2;
113 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Score")
114 int32 TeamKillScore =-1;
115 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Score")
116 int32 AIKilledScore = 1;
117 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Score")
118 int32 ObjectiveScore = 5;
119 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Score")
120 float PlayerKilledXP = 100.0f;
121 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Score")
122 float TeamKilledXP = -100.0f;
123 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Score")
124 float SelfKilledXP = -25.0f;
125 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Score")
126 float AIKilledXP = 25.0f;
128 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Rules")
129 bool bEndOnTeamReachingGoal = true;
130 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Online GM|Rules")
131 bool bPlayerLifeLimit = false;
132 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Online GM|Rules")
133 int32 PlayerLifePool = 10;
137 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Rules|Rounds")
138 bool bRoundBased = false;
139 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Rules|Rounds")
140 bool bRoundsTimed = false;
141 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Rules|Rounds")
142 bool bRoundLimit = false;
143 UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category="Online GM|Rules|Rounds")
145 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Rules|Rounds")
146 int32 RoundTime = 20;
147 int32 RoundTimeMax = 10;
149 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Rules|Rounds")
150 int32 RoundGoalScore = 1;
151 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Online GM|Rules|Rounds")
152 int32 MaxRounds = 10;
153 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Online GM|Rules|Rounds")
154 float TimeTillNextRound = 4.0f;
155 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category="Online GM|Rules|Rounds")
156 bool bEndRoundOnTeamReachingGoal = false;
162 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Rules")
163 bool bTeamKillPenalty = true;
164 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Rules")
165 int32 TeamKillPenaltyTime = 3;
166 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Rules")
167 bool bSelfKillPenalty = true;
168 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Rules")
169 int32 SelfKillPenaltyTime = 3;
171 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Feed")
172 bool bShowDeathsInFeed = true;
173 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Feed")
174 bool bShowPlayerDeathsInFeed = true;
175 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="Online GM|Feed")
176 bool bShowAIDeathInFeed = true;
195 virtual
void ReadyMatch() override;
196 virtual
void StartMatch() override;
197 virtual
void EndMatch() override;
198 virtual
void MatchCountdown() override;
201 virtual
void StartRound();
202 virtual
void RoundCountdown();
203 virtual
void EndRound();
205 virtual
void UpdateGameState() override;
208 UFUNCTION(BlueprintImplementableEvent, Category="Online GM|
Multiplayer")
210 UFUNCTION(BlueprintImplementableEvent, Category="Online GM|
Multiplayer")
211 void OnRoundCountdown();
212 UFUNCTION(BlueprintImplementableEvent, Category="Online GM|
Multiplayer")
215 UFUNCTION(BlueprintCallable, Category="Online GM|
Multiplayer")
216 virtual
void SetEndRoundCondition(){bEndRoundCondition =
true;};
217 UFUNCTION(BlueprintCallable, Category=
"Online GM|Multiplayer")
218 virtual
void ResetEndRoundCondition(){bEndRoundCondition =
false;};
222 virtual void AddScoreToTeam(
const int32 TeamID,
const int32 ScoreToAdd);
224 virtual void AddScoreToPlayer(APlayerState* Player,
const bool bTeamKill =
false,
const bool bSelfKill =
false);
225 virtual void AddDeathToPlayer(APlayerState* Player,
const bool bSelfKill =
false);
228 UPROPERTY(VisibleAnywhere, Category=
"Online GM|State|Multiplayer")
233 FTimerHandle RoundTimerHandle;
234 FTimerHandle NextRoundTimerHandle;
238 bool bEndRoundCondition = false;