private void CheckCampaignTime(uint levelId, int finishTime) { if (CampaignManager.DefaultCampaignTimes.TryGetValue(levelId, out Dictionary <CampaignMedal, uint> level)) { if (this.CampaignLevelRecords.TryGetValue(levelId, out CampaignLevelRecord record_)) { if (finishTime < 0) //Died in deathmatch campaign { if (record_.Time > 0) //Current record is positive, so he finished, skip { return; } else if (record_.Time > finishTime) //Prefer longer time { return; } } else if (finishTime > record_.Time) //Normal race, prefer shorter time { return; } } CampaignMedal medal = CampaignMedal.None; if (finishTime > 0) //Only give medals for finished times { if (level[CampaignMedal.Gold] > finishTime) { medal = CampaignMedal.Gold; } else if (level[CampaignMedal.Silver] > finishTime) { medal = CampaignMedal.Silver; } else if (level[CampaignMedal.Bronze] > finishTime) { medal = CampaignMedal.Bronze; } } this._CampaignLevelRecords[levelId] = new CampaignLevelRecord(finishTime, medal); } }
public CampaignLevelRecord(int time, string season, CampaignMedal medal) { this.Time = time; this.Season = season; this.Medal = medal; }
public CampaignLevelRecord(int time, CampaignMedal medal) { this.Time = time; this.Medal = medal; }