job board and quests bugfixes

* fix: jobs disappear after completing
* fix: jobs (and quest) does not cost items
This commit is contained in:
Robert Paciorek 2024-01-04 00:19:16 +00:00
parent e50207ac2e
commit 5c802927a0
2 changed files with 11 additions and 2 deletions

View File

@ -759,7 +759,7 @@ public class ContentController : Controller {
[Produces("application/xml")]
[Route("V2/ContentWebService.asmx/SetTaskState")]
[VikingSession]
public IActionResult SetTaskState(Viking viking, [FromForm] Guid userId, [FromForm] int missionId, [FromForm] int taskId, [FromForm] bool completed, [FromForm] string xmlPayload, [FromForm] string apiKey) {
public IActionResult SetTaskState(Viking viking, [FromForm] Guid userId, [FromForm] int missionId, [FromForm] int taskId, [FromForm] bool completed, [FromForm] string xmlPayload, [FromForm] string commonInventoryRequestXml, [FromForm] string apiKey) {
if (viking.Uid != userId)
return Unauthorized("Can't set not owned task");
@ -770,6 +770,12 @@ public class ContentController : Controller {
Status = SetTaskStateStatus.TaskCanBeDone,
};
if (commonInventoryRequestXml.Length > 44) { // avoid process inventory on empty xml request,
// NOTE: client do not set this on empty string when no inventory change request, but send <?xml version="1.0" encoding="utf-8"?>
SetCommonInventory(viking, commonInventoryRequestXml);
taskResult.CommonInvRes = new CommonInventoryResponse { Success = true };
}
if (results.Count > 0)
taskResult.MissionsCompleted = results.ToArray();

View File

@ -74,6 +74,9 @@ public class MissionService {
task.Payload = null;
task.Completed = false;
}
if (missionStore.GetActiveMissions(apiKey).Contains(missionId))
missionState.MissionStatus = MissionStatus.Active;
else
missionState.MissionStatus = MissionStatus.Upcoming;
} else {
missionState.MissionStatus = MissionStatus.Completed;