Beispiel #1
0
        public ActionResult Roll(int roll)
        {
            g = GetGame();
            if (g == null) return RedirectToAction("Index", "Home");

            if (g.State == GameState.BeginStep)
            {
                if (g.IsManualMode)
                {
                    var p = g.GetPlayer(CurrUser);

                    if (p.ManRoll == 0)
                    {
                        p.ManRoll = roll;
                        g.Tlog("step.ManRoll.pressed", "{0} нажал", "{0} pressed", p.htmlName);
                    }
                }
                else
                    if (g.IsCurrPlayer(CurrUser))
                        PlayerStep.MakeStep(g);
            }

            return RenderGame(g);
        }
Beispiel #2
0
        public static string ShowGameState(Game g, string uname)
        {
            if (g == null) return "";

            var p = g.GetPlayer(uname);

            if (p == null) return g.Text("PlayerState.WatchingGame", "Вы наблюдаете за игрой", "You are watching game");

            string paction = "";

            string rolled = "";// string.Format("roll {0} <br />", g.Curr.PrintLastRoll);

            var IsCurrPlayer = g.IsCurrPlayer(uname);

            if (!IsCurrPlayer && !g.IsManualMode) paction = rolled + g.Text("Map.Waiting", "ждите ход...", "waiting...");

            if (p.IsBot) return rolled + g.Text("Map.RenderBotPlaying", "играет компьютер...", "Bot playing...");

            switch (g.State)
            {
                case GameState.BeginStep:
                    paction = GameRender.RenderStartState(g, uname);

                    paction += "<br />" + GameRender.RenderRollButton(g, uname);
                    break;

                case GameState.Mortgage:
                    paction = g.Text("Mortage.Cell", "земля заложена <br />", "land is mortgaged <br />");
                    break;

                case GameState.CanBuy:
                    if (IsCurrPlayer)
                    {
                        var tt = g.Text("pAction.CanBuy", "вы можете купить", "you can buy");
                        paction = string.Format("{0} {1}<br /> {2}", tt, g.CurrCell.Name,
                            UIParts("BuyOrAuc"));
                    }
                    break;

                case GameState.Auction:
                    paction = RenderAuction(g, uname);
                    break;

                case GameState.Trade:
                    paction = GameRender.RenderTradeProposal(g, uname);
                    break;

                case GameState.NeedPay:
                    if (IsCurrPlayer)
                    {
                        if (g.Curr.Police == 4)
                            paction = string.Format("{0} {1} {2}",
                                g.Text("pAction.MustPay", "вы должны заплатить", "you must pay"),
                                UIParts("ButtonPay"),
                                g.PayAmount.PrintMoney()
                                );
                        else
                            paction = string.Format("{0} {1}", UIParts("ButtonPay"), g.PayAmount.PrintMoney());
                    }
                    break;

                case GameState.CantPay:
                    if (IsCurrPlayer)
                    {
                        paction = g.Text("CannotPay",
                            "у вас нет денег, попробуйте заложить", "not enough money, try mortgage land");

                        if (g.CurrCell.Owner == null && g.CurrCell.IsLand)
                            paction += "<br />" + UIParts("BuyOrAuc");
                        else paction += "<br />" + UIParts("ButtonPay");
                    }
                    //g.State = GameState.Pay;
                    break;

                case GameState.MoveToCell:
                    if (IsCurrPlayer)
                    {
                        if (g.LastRandomCard != null && g.LastRandomCard.Pos != 10)
                            paction = string.Format("{0} {1} {2}",
                                 UIParts("ButtonRandomMove"),
                                g.Text("go.RanodmMove", " на клетку ", " to cell "),
                                g.LastRandomCard.Pos);
                        else
                            paction = string.Format("{0} {1}", UIParts("ButtonRandomMove"),
                       g.Text("go.RanodmMove.Police", "вас задержал интерпол", "go to Police"));

                    }
                    break;

                case GameState.RandomCell:
                    if (g.IsCurrPlayer(uname))
                    {
                        paction = string.Format("{0} {1}",
                            g.LastRandomCard.Text,
                             UIParts("ButtonOK"));
                    }
                    else paction = g.LastRandomCard.Text;

                    break;

                default:
                    paction = "Nothing";
                    break;
            }

            return string.Format("{0}", paction);

            //var lr = g.LastRoll != null ? g.LastRoll : new[] { 1, 1 };
            //var roll = string.Format("{0}<br /> {1} {2}",
            //    g.Text("Map.LastRoll", "последний бросок", "last roll"),
            //    //g.Curr.htmlName,
            //    ImageHelper.GetRollImage(lr[0]),
            //    ImageHelper.GetRollImage(lr[1]));

            //return string.Format("{0} <br /> {1}", roll, paction);
        }