From 379b731f612b1c871bae8ec592e65dbfbd46097e Mon Sep 17 00:00:00 2001 From: Spirtix Date: Mon, 10 Jul 2023 20:10:51 +0200 Subject: [PATCH] fix premature completion of missions --- src/Services/MissionService.cs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/Services/MissionService.cs b/src/Services/MissionService.cs index 3a24a6a..3ec094c 100644 --- a/src/Services/MissionService.cs +++ b/src/Services/MissionService.cs @@ -35,7 +35,7 @@ public class MissionService { List result = new(); if (completed) { Mission mission = GetMissionWithProgress(missionId, userId); - if (AllMissionsCompleted(mission) && AllTasksCompleted(mission)) { + if (MissionCompleted(mission)) { // Get mission rewards result.Add(new MissionCompletedResult { MissionID = missionId, @@ -79,7 +79,7 @@ public class MissionService { } } - if (taskStatuses.Count == mission.Tasks.Count && AllMissionsCompleted(mission)) + if (MissionCompleted(mission)) mission.Completed = 1; } @@ -119,11 +119,7 @@ public class MissionService { ctx.SaveChanges(); } - private bool AllMissionsCompleted(Mission mission) { - return mission.Missions.FindAll(x => x.Completed == 1).Count == mission.Missions.Count; - } - - private bool AllTasksCompleted(Mission mission) { - return mission.Tasks.FindAll(x => x.Completed == 1).Count == mission.Tasks.Count; + private bool MissionCompleted(Mission mission) { + return mission.MissionRule.Criteria.RuleItems.All(x => x.Complete == 1); } }