public void SetTask(int number, PlayerTaskModel model) { info = model; Task.text = model.GenerateDescription(); if (info.PlayerProgress >= info.ActionsCount) { IsLocked.SetActive(false); } }
public async Task <PlayerTaskModel> CreatePlayerTaskAsync(int taskId, int gameId, CyberSparrow user) { var task = th.GetTask(taskId); var game = gh.GetGame(gameId); if (task == null || game == null) { throw new NullReferenceException("GAME OR TASK IS NULL"); } PlayerTaskModel model = new PlayerTaskModel(); model.Game = game; model.Task = task; model.User = user; model.NumberOfFailedflags = 0; model.TaskState = "ready"; var m = await db.PlayerTask.AddAsync(model); db.SaveChanges(); return(m.Entity); }
public async Task <bool> DeliverFlag(int taskId, int gameId, string flag) { var context = HttpContext.User; var user = await userHandler.GetUserByEmail(HttpContext.User.Identity.Name); var game = gameHandler.GetGame(gameId); var task = th.GetTask(taskId); if (user == null || task == null || game == null) { throw new NullReferenceException("USER IS NULL, CANNOT GET TASK"); } bool isFlagCorrect = await pth.DeliverFlagAsync(game, task, user, flag); if (isFlagCorrect) { //Delete Virtual machine var bearer = await aapi.GetBearerTokenAsync(); PlayerTaskModel playerTask = await pth.GetPlayerTaskAsync(game, task, user); await aapi.DeleteVmAndAllResources(bearer, playerTask.VmName); //Check if all tasks are completed var allGameTasks = await pth.GetAllTaskForPlayerForGame(game.GameId, user); if (allGameTasks.All(x => x.State == "finished")) { //Delete tool vm var playerGame = pgh.GetPlayerGame(game.GameId, user.Id); var tollVmName = playerGame.ToolVmIdentifier; await aapi.DeleteVmAndAllResources(bearer, tollVmName); //update PlayerGame state playerGame.state = "finished"; pgh.UpdateGame(playerGame); } } return(isFlagCorrect); }
public bool UpdatePlayerTask(PlayerTaskModel model) { db.PlayerTask.Update(model); return(SaveChanges()); }