public GameHub(Game game) { _game = game; _timer = new Timer(); _timer.Elapsed += CreateGame; _context = GlobalHost.ConnectionManager.GetHubContext<GameHub>(); }
/* * POST: Game/ChooseCharacter * Przy pierwszym dolaczeniu do pokoju zatwierdza wybór postaci */ public ActionResult ConfirmCharacterSelection() { NameValueCollection Form = Request.Form; string gameCode = (string)Form["gamecode"]; // roboczo: string characterID = "1"; //string characterID = (string)Form["characterid"]; Game modelGame = new Game(); bool resultModel = modelGame .NewUserCurrentlyInGameDbs(User.Identity.GetUserId() , gameCode, characterID); //return RedirectToAction("Room", new { id = gameCode }); return View("~/Views/Game/CardPanel.cshtml"); }
/* * POST * Generuje kod gry do pokoju, ktory nastepnie trzeba aktywowac */ public ActionResult GenerateCode() { Game modelGame = new Game(); if (User.Identity.IsAuthenticated) { ViewBag.gamecode = modelGame.GenerateGameCodeConnectedWithUserID(User.Identity.GetUserId()); } else { ViewBag.gamecode = null; } return View(); }
/* * POST: /Game/TryRoomActivation * Pobiera z formularza aktywacji nazwe gry, sparwdza czy jest dozwolona, * kontroluje zgodnosc kodu gry i ID sesji uzytkownika */ public ActionResult TryRoomActivation() { NameValueCollection Form = Request.Form; string roomName = (string)Form["roomname"]; string gameCode = (string)Form["gamecode"]; Game modelGame = new Game(); bool result = modelGame .TryRoomActivate(ref roomName, ref gameCode, User.Identity.GetUserId()); if(result == true) { @ViewData["gamecode"] = gameCode; @ViewData["roomname"] = roomName; ViewBag.roomActivated = true; // Wstępnie zapisałem do sesji dane o bieżącej grze Session["GameCode"] = gameCode; Session["GameName"] = roomName; Session["IsActive"] = true; } else { ViewBag.roomActivated = false; } return View(); }
/* * GET: Game/JoinRoom/id * Główna metoda dostępu do pokuju */ public ActionResult Room(string id) { string gameCode = id; GameDb resultDb = ApplicationDb.GamesInfo.Find(gameCode); // 1. uzytkownik niezalogowany if (!User.Identity.IsAuthenticated) { return View("~/Views/Game/RoomLoginPetition.cshtml"); } // 2. brak kodu w bazie else if (resultDb == null) { return View("~/Views/Game/RoomNotFound.cshtml"); } // 3. pokoj nieaktywowany else if (resultDb.activated == false) { return View("~/Views/Game/RoomNotActivated.cshtml"); } else { Game modelGame = new Game(); bool resultModel = modelGame .CheckIfUserJoinedGameAlready(User.Identity.GetUserId(), gameCode); // 4. Uzytkownik pierwszy raz dolaczyl do pokoju. if (resultModel == false) { ViewData["gamecode1"] = gameCode; ViewBag.selectingcharacter = true; return View(); } else { ViewData["gamecode1"] = gameCode; ViewData["roomname"] = resultDb.name; ViewBag.selectingcharacter = false; if (resultDb.CreatorUserID == User.Identity.GetUserId()) { ViewData["gamecode1"] += "Jestes mistrzem gry."; } return View(); } } }