mirror of
https://github.com/SoDOff-Project/sodoff.git
synced 2025-10-11 08:18:49 -07:00
fix upcoming missions in GetUserMissionState
* this is bugfix for upcoming missions issue in SoD 2.9 after 60cc00d * also removed TODO because ProductGroupID is not related to mission.GroupID and ProductGroupID filtering is covered by gameVersion
This commit is contained in:
parent
278f04d381
commit
fb6c935e7e
@ -1109,14 +1109,17 @@ public class ContentController : Controller {
|
|||||||
foreach (var m in filterV2.MissionPair)
|
foreach (var m in filterV2.MissionPair)
|
||||||
if (m.MissionID != null)
|
if (m.MissionID != null)
|
||||||
result.Missions.Add(missionService.GetMissionWithProgress((int)m.MissionID, viking.Id, gameVersion));
|
result.Missions.Add(missionService.GetMissionWithProgress((int)m.MissionID, viking.Id, gameVersion));
|
||||||
// TODO: probably should also check for mission based on filterV2.ProductGroupID vs mission.GroupID
|
|
||||||
} else {
|
} else {
|
||||||
if (filterV2.GetCompletedMission ?? false) {
|
if (filterV2.GetCompletedMission ?? false) {
|
||||||
foreach (var mission in viking.MissionStates.Where(x => x.MissionStatus == MissionStatus.Completed))
|
foreach (var mission in viking.MissionStates.Where(x => x.MissionStatus == MissionStatus.Completed))
|
||||||
result.Missions.Add(missionService.GetMissionWithProgress(mission.MissionId, viking.Id, gameVersion));
|
result.Missions.Add(missionService.GetMissionWithProgress(mission.MissionId, viking.Id, gameVersion));
|
||||||
} else {
|
} else {
|
||||||
foreach (var mission in viking.MissionStates.Where(x => x.MissionStatus != MissionStatus.Completed))
|
var missionStatesById = viking.MissionStates.Where(x => x.MissionStatus != MissionStatus.Completed).ToDictionary(ms => ms.MissionId);
|
||||||
result.Missions.Add(missionService.GetMissionWithProgress(mission.MissionId, viking.Id, gameVersion));
|
HashSet<int> upcomingMissionIds = new(missionStore.GetUpcomingMissions(gameVersion));
|
||||||
|
var combinedMissionIds = new HashSet<int>(missionStatesById.Keys);
|
||||||
|
combinedMissionIds.UnionWith(upcomingMissionIds);
|
||||||
|
foreach (var missionId in combinedMissionIds)
|
||||||
|
result.Missions.Add(missionService.GetMissionWithProgress(missionId, viking.Id, gameVersion));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user