/// <summary>
    /// Tworzy QuestionPopup z dwoma odpowiedziami: "Tak" i "Nie"
    /// </summary>
    /// <param name="question">Pytanie, które ma zostać wyświetlone użytkownikowi</param>
    /// <param name="yesAction">Akcja wywoływana po wciśnięciu przycisku "Tak"</param>
    /// <param name="noAction">Akcja wywoływana po wciśnięciu przycisku "Nie"</param>
    /// <returns>QuestionPopup z odpowiedziami "Tak" "Nie"</returns>
    public static QuestionPopup CreateYesNoDialog(string question, PopupAction yesAction = null, PopupAction noAction = null)
    {
        QuestionPopup popup = new QuestionPopup(question);

        yesAction += delegate(Popup source)
        {
            source.onClose = null;
            Functionality.Destroy().Invoke(source);
        };
        popup.onClose += noAction;
        popup.AddButton(SettingsController.instance.languageController.GetWord("YES"), yesAction);
        popup.AddButton(SettingsController.instance.languageController.GetWord("NO"), Functionality.Destroy());

        return(popup);
    }
    /// <summary>
    /// Tworzy QuestionPopup z odpowiedzią "OK"
    /// </summary>
    /// <param name="question">Pytanie, które ma zostać wyświetlone użytkownikowi</param>
    /// <param name="okAction">Akcja wywoływana po naciśnięciu przycisku "Ok"</param>
    /// <returns>>QuestionPopup z odpowiedzią "Ok"</returns>
    public static QuestionPopup CreateOkDialog(string question, PopupAction okAction = null)
    {
        QuestionPopup popup = new QuestionPopup(question);

        popup.AddButton("OK", Functionality.Destroy());
        popup.onClose += okAction;

        return(popup);
    }
Esempio n. 3
0
    /// <summary>
    /// Funckja sterująca przepływem aukcji
    /// </summary>
    private void AuctionFlow(string playerName, int placeId, string bidder, float bid, string passPlayerName)
    {
        LanguageController lang = SettingsController.instance.languageController;

        //1 linijka:  Licytacja
        //2 linijka: nazwa budynku
        string auctionString = lang.GetWord("AUCTION") + "\n" + GameplayController.instance.board.GetField(placeId).GetFieldName() + "\n";

        if (bidders.Contains(bidder)) //Jeżeli bidders posiada biddera aka czy ktoś pobił
        {
            // Ostatni gracz jest lokalny: 3 linijka: Ty podbiłeś
            if (GameplayController.instance.session.FindPlayer(bidder).NetworkPlayer.IsLocal)
            {
                auctionString += lang.GetWord("YOU_RAISED");
            }
            // Ostatni gracz nie jest lokalny 3 linijka: Gracz <nick> podbił
            else
            {
                auctionString += lang.GetWord("PLAYER") + " " + bidder + " " + lang.GetWord("RAISED");
            }
        }
        else if (playerName != passPlayerName && passPlayerName != "") //Jeżeli ktoś spasował, ponieważ sprawdza czy osoba pasująca nie jest startującym aukcji
        {
            //Jeżeli pasujący gracz jest lokalny 3 linijka: Ty spasowałeś
            if (GameplayController.instance.session.FindPlayer(passPlayerName).NetworkPlayer.IsLocal)
            {
                auctionString += lang.GetWord("YOU_PASSED");
            }
            //Jeżeli pasujący gracz nie jest lokalny 3 linijka: Gracz <nick> spasował
            else
            {
                auctionString += lang.GetWord("PLAYER") + " " + passPlayerName + " " + lang.GetWord("PASSED");
            }
        }
        else if (playerName == passPlayerName) //Jeżeli gracz który spasował, jest graczem który zaczął akcję, aka pierwsze wywołanie eventu licytacji
        {
            //Jeżeli gracz jest lokalny 3 linijka : Zacząłeś aukcję
            if (GameplayController.instance.session.FindPlayer(playerName).NetworkPlayer.IsLocal)
            {
                auctionString += lang.GetWord("YOU_STARTED_AUCTION");
            }
            //Jeżeli gracz nie jest lokalny 3 linijka: gracz <nick> rozpoczął aukcję
            else
            {
                auctionString += lang.GetWord("PLAYER") + " " + playerName + " " + lang.GetWord("STARTED_AUCTION");
            }
        }
        //4 linijka: Obecna stawka: <bid>
        auctionString += "\n" + lang.GetWord("AUCTION_CURRENT_BID") + bid;

        auctionPopup = new QuestionPopup(auctionString);

        if (!GameplayController.instance.session.FindPlayer(playerName).NetworkPlayer.IsLocal&& bidders.Contains(GameplayController.instance.session.localPlayer.GetName()))
        {
            //Wersja dla osób, które mogą licytować
            string passString  = lang.GetWord("PASS");
            string raiseString = lang.GetWord("RAISE");

            Popup.PopupAction passAction = delegate(Popup source)
            {
                source.onClose = null;
                EventManager.instance.SendOnAuction(playerName, placeId, "", bid, GameplayController.instance.session.localPlayer.GetName());
            };

            Popup.PopupAction raiseAction = delegate(Popup source)
            {
                source.onClose = null;
                if (!raisers.Contains(GameplayController.instance.session.localPlayer.GetName()))
                {
                    raisers.Add(GameplayController.instance.session.localPlayer.GetName());
                }
                EventManager.instance.SendOnAuction(playerName, placeId, GameplayController.instance.session.localPlayer.GetName(), bid + Keys.Gameplay.RAISE_BID_VALUE, "");
            };

            auctionPopup.AddButton(passString, passAction);
            if (GameplayController.instance.session.localPlayer.Money >= bid + Keys.Gameplay.RAISE_BID_VALUE)
            {
                auctionPopup.AddButton(raiseString, raiseAction);
            }

            auctionPopup.onClose = passAction;
        }
        PopupSystem.instance.AddPopup(auctionPopup);
    }