Compare commits

..

2 Commits

Author SHA1 Message Date
Beu
bade6e62c0 Only apply bonus to players who finished 2024-04-05 15:12:29 +02:00
Beu
51273a46ef fixes for linter 2024-04-05 14:49:37 +02:00

View File

@ -323,7 +323,7 @@ UIModules_Chrono::SetTimeOffset(Player, SpecificOffset);
declare netwrite Integer Net_RoyalRounds_CheckpointUI_TotalNbSegments for Teams[0];
declare Integer[Text] CustomTimes for This = [];
declare Integer[Text][Integer] CurrentRanking for This = []; // CurrentRanking[Segment][AccountId][Time]
CurrentRanking[0] = Integer[Text]; // Init white section
CurrentRanking[0] = []; // Init white section
declare Boolean IsStartRound = True;
// Reset players for the race
@ -349,8 +349,7 @@ IsStartRound = False;
***Match_PlayLoop***
***
// Manage race events
declare RacePendingEvents = Race::GetPendingEvents();
foreach (Event in RacePendingEvents) {
foreach (Event in Race::GetPendingEvents()) {
if (Event.Type == Events::C_Type_SkipOutro && C_DisableSkipOutro) {
Race::InvalidEvent(Event);
} else {
@ -363,7 +362,7 @@ foreach (Event in RacePendingEvents) {
declare Integer CurrentSegment for Event.Player.Score = -1;
Log::Log("""[RacePendingEvents] Player {{{Event.Player.User.Name }}} end the segment {{{CurrentSegment}}} at {{{Event.Player.StartTime - StartTime + Event.RaceTime}}}""");
if (CurrentRanking.existskey(CurrentSegment-1)) CurrentRanking[CurrentSegment-1].removekey(Event.Player.User.WebServicesUserId) ;
if (!CurrentRanking.existskey(CurrentSegment)) CurrentRanking[CurrentSegment] = Integer[Text];
if (!CurrentRanking.existskey(CurrentSegment)) CurrentRanking[CurrentSegment] = [];
CurrentRanking[CurrentSegment][Event.Player.User.WebServicesUserId] = Event.Player.StartTime - StartTime + Event.RaceTime;
// Update Ranking of the current players
@ -385,7 +384,7 @@ foreach (Event in RacePendingEvents) {
Net_RoyalRounds_CheckpointUI_CurrentNbSegments = CurrentSegment;
if (CurrentSegment < S_SegmentsPerRound) { // TODO Try to keep CP diff a the bottom of the screen
declare ModeRounds_CanSpawn for Event.Player.Score = Rounds_Settings_CanSpawnDefault;
declare Boolean ModeRounds_CanSpawn for Event.Player.Score = Rounds_Settings_CanSpawnDefault;
ModeRounds_CanSpawn = True;
CurrentSegment = CurrentSegment + 1;
Race::StopSkipScoresTable(Event.Player);
@ -413,7 +412,6 @@ foreach (Event in RacePendingEvents) {
CurrentSegment = CurrentSegment - 1;
}
if (UpdateRankingTimer == 0) UpdateRankingTimer = Now + 1000;
declare Boolean ModeRounds_CanSpawn for Event.Player.Score = Rounds_Settings_CanSpawnDefault;
}
}
}
@ -638,8 +636,7 @@ Integer GetFinishTimeout(Integer _FinishTimeout) {
if (_Player != Null) {
declare Integer CurrentSegment for _Player.Score;
CustomTimes[_Player.User.WebServicesUserId] = CurrentRanking[CurrentSegment][_Player.User.WebServicesUserId];
} else {
if (!S_StrictPointDistribution) {
} else if (!S_StrictPointDistribution) {
CustomTimes.clear();
CurrentRanking = CurrentRanking.sortkeyreverse();
declare Integer LastTimeFromThePreviousSegment = 0;
@ -654,7 +651,6 @@ Integer GetFinishTimeout(Integer _FinishTimeout) {
}
}
}
}
declare Integer BonusForFinishers = 0;
if (S_FinisherBonusBase > 0 && S_FinisherBonusNumber > 0 && CurrentRanking.existskey(S_SegmentsPerRound)) {
@ -678,7 +674,7 @@ Integer GetFinishTimeout(Integer _FinishTimeout) {
Points = PointsRepartition[PointsRepartition.count - 1];
}
declare Integer CurrentSegment for Player.Score;
if (CurrentSegment == S_SegmentsPerRound) {
if (CurrentSegment == S_SegmentsPerRound && Scores::GetPlayerPrevRaceTime(Player.Score) > 0) {
Points += BonusForFinishers;
}
Scores::SetPlayerRoundPoints(Player.Score, Points);