forked from SoDOff-Project/sodoff
fix premature completion of missions
This commit is contained in:
parent
4b2abbfb1e
commit
379b731f61
@ -35,7 +35,7 @@ public class MissionService {
|
|||||||
List<MissionCompletedResult> result = new();
|
List<MissionCompletedResult> result = new();
|
||||||
if (completed) {
|
if (completed) {
|
||||||
Mission mission = GetMissionWithProgress(missionId, userId);
|
Mission mission = GetMissionWithProgress(missionId, userId);
|
||||||
if (AllMissionsCompleted(mission) && AllTasksCompleted(mission)) {
|
if (MissionCompleted(mission)) {
|
||||||
// Get mission rewards
|
// Get mission rewards
|
||||||
result.Add(new MissionCompletedResult {
|
result.Add(new MissionCompletedResult {
|
||||||
MissionID = missionId,
|
MissionID = missionId,
|
||||||
@ -79,7 +79,7 @@ public class MissionService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (taskStatuses.Count == mission.Tasks.Count && AllMissionsCompleted(mission))
|
if (MissionCompleted(mission))
|
||||||
mission.Completed = 1;
|
mission.Completed = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,11 +119,7 @@ public class MissionService {
|
|||||||
ctx.SaveChanges();
|
ctx.SaveChanges();
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool AllMissionsCompleted(Mission mission) {
|
private bool MissionCompleted(Mission mission) {
|
||||||
return mission.Missions.FindAll(x => x.Completed == 1).Count == mission.Missions.Count;
|
return mission.MissionRule.Criteria.RuleItems.All(x => x.Complete == 1);
|
||||||
}
|
|
||||||
|
|
||||||
private bool AllTasksCompleted(Mission mission) {
|
|
||||||
return mission.Tasks.FindAll(x => x.Completed == 1).Count == mission.Tasks.Count;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user