/// <summary> /// Metodo chiamato quando il giocatore sceglie il numero di pizze da mangiare /// </summary> /// <param name="ucPlayer"></param> /// <param name="nrOfPizzasToEat"></param> private void EatPizzas(UcPlayer ucPlayer, int nrOfPizzasToEat) { bool hasNextPlayerValidChoices; // Mangio le pizze e procedo con il turno del prossimo giocatore bool hasLost = !_manager.EatPizzas(nrOfPizzasToEat, out hasNextPlayerValidChoices); // Se il giocatore ha perso il gioco è finito if (hasLost) { MessageBoxHelper.ShowWarningMessageBox(string.Format(Resources.PlayerHasLost, ucPlayer.PlayerName)); ResetGame(); return; } // Visualizzo il numero di pizze rimanenti ShowNumberOfPizzas(); // Disattivo lo user control del giocatore che ha appena giocato ucPlayer.SetActivePlayer(false); // Attivo lo user control del prossimo giocatore a cui tocca mangiare la pizza GetPlayerUserControl(_manager.ActivePlayer).SetActivePlayer(true); // Se il giocatore attuale non ha mosse valide è costretto a passare il turno: // mostro un messaggio all'utente if (!hasNextPlayerValidChoices) { MessageBoxHelper.ShowInformationMessageBox(Resources.PlayerHasNoChoices); } }
protected void Page_Load(object sender, EventArgs e) { if (CurrentUser == null) { Response.Redirect("login.aspx"); return; } if (Request.QueryString["GameId"] == null) { Response.Redirect("default.aspx"); return; } #region Load Game using (var db = new JaipurEntities()) { var gameId = int.Parse(Request.QueryString["GameId"].ToString()); var game = db.Game.FirstOrDefault(g => g.Id == gameId); if (game == null) { //throw new Exception("Game not found"); Response.Redirect("Default.aspx"); return; } if (game.ChallengerId != CurrentUser.Id && game.EnemyId != CurrentUser.Id) { //throw new Exception("No permission"); Response.Redirect("Default.aspx"); } GameData = new GameData(game); if (game.ChallengerId == CurrentUser.Id) { UserData = GameData.ChallengerData; EnemyData = GameData.EnemyData; } else { UserData = GameData.EnemyData; EnemyData = GameData.ChallengerData; } } #endregion Load Game GameStatus.Text = GameData.GetStatus(CurrentUser); LblGold.Text = GameData.Resources[Card.Gold].ToString(); LblSilk.Text = GameData.Resources[Card.Silk].ToString(); LblSilver.Text = GameData.Resources[Card.Silver].ToString(); LblSpices.Text = GameData.Resources[Card.Spices].ToString(); LblRuby.Text = GameData.Resources[Card.Ruby].ToString(); LblLeather.Text = GameData.Resources[Card.Leather].ToString(); BtnBuy.Enabled = GameData.IsCurrentTurn(UserData.User); BtnTrade.Enabled = GameData.IsCurrentTurn(UserData.User); BtnBuyAllCamels.Enabled = GameData.IsCurrentTurn(UserData.User); BtnSell.Enabled = GameData.IsCurrentTurn(UserData.User); BtnBuy.Enabled = GameData.IsCurrentTurn(CurrentUser); BtnTrade.Enabled = GameData.IsCurrentTurn(CurrentUser); BtnBuyAllCamels.Enabled = GameData.IsCurrentTurn(CurrentUser); BtnSell.Enabled = GameData.IsCurrentTurn(CurrentUser); if (!GameData.IsCurrentTurn(CurrentUser)) { ClientScriptManager cs = Page.ClientScript; cs.RegisterStartupScript(GetType(), "auto_refresh", "<script type=\"text/javascript\">window.setInterval(function() { window.location.reload(); }, 10000);</script>", false); } if (!IsPostBack) { UcPlayer.LoadData(UserData, true); UcEnemy.LoadData(EnemyData, false); var container = CardContainer.GetContainer(GameData.OnTable, true); DlChecks.Items.Clear(); foreach (CardContainer c in container) { ListItem item = new ListItem("<img src='" + c.Image + "' height='121' width='97' />", ((int)c.Type).ToString()); item.Enabled = (c.Type != Card.Camel); DlChecks.Items.Add(item); } } }