public bool HasClaimableTask() { return(PlayerTasks.Exists(playerTask => { var taskCluster = TaskClusters.Find(cluster => playerTask.taskClusterId == cluster.id); var task = taskCluster?.tasks.Find(t => t.number == playerTask.currentTaskNumber); return task != null && AchievementAmount(task.taskType) >= task.taskAmount; })); }
private void Update(PlayerTask playerTask) { var idx = PlayerTasks.FindIndex(a => a.id == playerTask.id); if (idx >= 0) { PlayerTasks[idx] = playerTask; } else { PlayerTasks.Add(playerTask); } }
void SubmitTaskAsync(PlayerTasks model) { SubmitTaskModel value = new SubmitTaskModel() { Id = model.Id, PlayerProgress = model.PlayerProgress - model.PlayerStartProgress, TaskId = model.TaskId }; CoroutineManager.SendRequest(SubmitTaskUrl, value, (PlayerTasksAnswer newModel) => { model.Id = newModel.Id; model.PlayerStartProgress = model.PlayerProgress; if (model.PlayerProgress >= model.ActionsCount) { Canvaser.Instance.PopUpPanel.ShowTask(model.GenerateDescription()); } }); }
public async Task <IActionResult> SolveTask(TempPlayers player) { if (!checkOutput(player)) { return(RedirectToAction(nameof(Index))); } if (ModelState.IsValid) { var existingPlayer = await _context.players.FirstOrDefaultAsync(p => p.nickname == player.nickname); if (existingPlayer != null) { existingPlayer.successfulTaskCount += 1; PlayerTasks playerTasks = new PlayerTasks(); playerTasks.tasksId = player.taskId; playerTasks.playersId = existingPlayer.id; _context.Update(existingPlayer); _context.Add(playerTasks); await _context.SaveChangesAsync(); } else { Players newPlayer = new Players(); newPlayer.nickname = player.nickname; newPlayer.successfulTaskCount = 1; PlayerTasks playerTasks = new PlayerTasks(); playerTasks.tasksId = player.taskId; _context.Add(newPlayer); await _context.SaveChangesAsync(); var tempPlayer = await _context.players.FirstOrDefaultAsync(p => p.nickname == player.nickname); playerTasks.playersId = tempPlayer.id; _context.Add(playerTasks); await _context.SaveChangesAsync(); } return(RedirectToAction(nameof(Index))); } return(View()); }
void SubmitAchievementAsync(PlayerTasks model, TasksTypes type) { SubmitAchievementModel value = new SubmitAchievementModel() { Id = model.Id, AchievementId = model.TaskId, PlayerProgress = model.PlayerProgress - model.PlayerStartProgress, Language = (int)LocalizationManager.CurrentLanguage }; CoroutineManager.SendRequest(SubmitAchievementUrl, value, (PlayerTasksAnswer newModel) => { model.Id = newModel.Id; model.PlayerStartProgress = model.PlayerProgress; if (model.PlayerProgress >= model.ActionsCount) { Canvaser.Instance.PopUpPanel.ShowAchievement(newModel); } if (type == TasksTypes.Share && Canvaser.Instance.Suits.gameObject.activeInHierarchy) { InventoryManager.Instance.GetSuitsAsync(true); } //add window }); }