/// <summary> /// Pokazuje wskazanemu graczowi poppup z pytaniem, czy chce on ulepszyć dane pole /// </summary> /// <param name="player">Gracz, któremu pokazujemy popup</param> /// <param name="visualiser">Instancja visualisera, który przechowuje dane pole</param> /// <param name="language">Odwołanie do LanguageControllera</param> private void ShowUpgradePopup(Player player, PlaceVisualiser visualiser, LanguageController language) { //Tylko budynki o typie NormalBuilding można ulepszyć int currentTier = GameplayController.instance.board.GetTier(visualiser.placeIndex); //Pytamy o możliwość ulepszenia tylko wtedy, gdy istnieje następny poziom budynku if (HasNextTier(visualiser.placeIndex) && player.Money >= GameplayController.instance.banking.GetUpgradePrice(visualiser.placeIndex)) { float upgradePrice = GetTier(currentTier + 1).buyPrice; //Sprawdzamy, czy gracz ma wystraczająco pieniędzy na ulepszenie if (player.Money >= upgradePrice) { string message = language.GetWord("DO_YOU_WANT_TO_UPGRADE") + GetFieldName() + "? \n" + language.GetWord("UPGRADE_COST") + upgradePrice; Popup.PopupAction yesAction = delegate(Popup source) { GameplayController.instance.banking.UpgradeBuilding(player, visualiser.placeIndex); }; QuestionPopup upgrade = QuestionPopup.CreateYesNoDialog(message, yesAction); PopupSystem.instance.AddPopup(upgrade); } } }
/// <summary> /// Pokazuje wskazanemu graczowi poppup z pytaniem, czy chce on kupić dane pole /// </summary> /// <param name="player">Gracz, któremu pokazujemy popup</param> /// <param name="visualiser">Instancja visualisera, który przechowuje dane pole</param> private void ShowBuyPopup(Player player, PlaceVisualiser visualiser) { if (player.Money >= GetInitialPrice()) { LanguageController language = SettingsController.instance.languageController; //popup o mozliwosci kupienia pola od banku string message = language.GetWord("DO_YOU_WANT_TO_BUY") + GetFieldName() + "\n" + language.GetWord("PRICE") + ":" + GetInitialPrice() + "?"; Popup.PopupAction yesAction = delegate(Popup source) { //gracz chce kupic pole wiec jest mu przydzielane z banku GameplayController.instance.banking.AquireBuilding(player, player.PlaceId); source.onClose = null; }; Popup.PopupAction auctionAction = delegate { EventManager.instance.SendOnAuction(player.GetName(), player.PlaceId, "", GetInitialPrice(), player.GetName()); }; QuestionPopup wantToBuy = QuestionPopup.CreateYesNoDialog(message, yesAction); wantToBuy.onClose += auctionAction; PopupSystem.instance.AddPopup(wantToBuy); } else { //Jeżeli nie stać nas na kupienie budynku, rozpoczyna się licytacja EventManager.instance.SendOnAuction(player.GetName(), visualiser.placeIndex, "", GetInitialPrice(), player.GetName()); } }
private void OnGameStateChanged(GameState previousState, GameState newState) { if (newState == GameState.ended) { LanguageController language = SettingsController.instance.languageController; Player winner = GetWinner(); string message; if (winner != null) { if (winner.NetworkPlayer.IsLocal) { message = language.GetWord("YOU_WON_GAME"); } else { message = language.GetWord("GAME_ENDED") + " " + language.GetWord("WINNER_IS") + winner.GetName(); } } else { message = language.GetWord("GAME_ENDED"); } QuestionPopup endGame = QuestionPopup.CreateOkDialog(message, delegate { menu.QuitGame(); }); PopupSystem.instance.AddPopup(endGame); } }
/// <summary> /// Wyświetla stosowne komunikaty przy wowołaniu eventu przegranej gracza /// </summary> /// <param name="playerName">Gracz, który przegrał grę</param> private void OnPlayerLostGame(string playerName) { Player player = session.FindPlayer(playerName); LanguageController language = SettingsController.instance.languageController; if (player == null) { return; } //Gracz, który przegrał, jest graczem lokalnym if (player.NetworkPlayer.IsLocal) { string message = language.GetWord("YOU_LOST_THE_GAME"); QuestionPopup playerLostGame = QuestionPopup.CreateOkDialog(message); PopupSystem.instance.AddPopup(playerLostGame); } else { string message = language.GetWord("PLAYER") + playerName + language.GetWord("LOST_THE_GAME"); IconPopup playerLostGame = new IconPopup(IconPopupType.PlayerLost, message); PopupSystem.instance.AddPopup(playerLostGame); } }
private void OnTradeOfferReceived(string senderNickName, string[] senderBuildingNames, float senderMoney, string receiverNickName, string[] receiverBuildingNames, float receiverMoney) { if (receiverNickName == PhotonNetwork.LocalPlayer.NickName) { Popup.PopupAction yesAction = delegate { Player sender = gC.session.FindPlayer(senderNickName); List <Field> myBuildings = new List <Field>(); foreach (string name in receiverBuildingNames) { if (gC.board.GetField(name) != null) { myBuildings.Add(gC.board.GetField(name)); } } Player receiver = gC.session.FindPlayer(receiverNickName); List <Field> theirBuildings = new List <Field>(); foreach (string name in senderBuildingNames) { if (gC.board.GetField(name) != null) { theirBuildings.Add(gC.board.GetField(name)); } } OpenRightPanel(sender, myBuildings, receiverMoney, theirBuildings, senderMoney); }; IconPopup tradeOfferReceivedPopup = new IconPopup(IconPopupType.Trade, QuestionPopup.CreateYesNoDialog(lC.GetWord("YOU_GOT_AN_OFFER_FROM") + senderNickName + " <br>" + lC.GetWord("DO_YOU_WANT_TO_SEE"), yesAction)); PopupSystem.instance.AddPopup(tradeOfferReceivedPopup); } }
/// <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); }
public void Setup() { WebDriverFactory.InitBrowser(ConfigurationManager.AppSettings["Browser"]); WebDriverFactory.LoadApplication(ConfigurationManager.AppSettings["URL"]); _driver = WebDriverFactory.Driver; _driver.Manage().Window.Maximize(); _employerInformation = new EmployerInformationPage(_driver); _questionPopup = new QuestionPopup(_driver); }
/// <summary> /// Inicjowanie popup-u typu Icon /// </summary> /// <param name="iconType">Typ ikony do wyświetlania</param> /// <param name="closeMode">Tryb automatycznego zamknięcia popupu</param> /// <param name="message">Wiadomość do wyświetlenia w QuestionPopupie po kliknięciu IconPopup-u</param> public IconPopup(IconPopupType iconType, string message, AutoCloseMode closeMode = AutoCloseMode.NewAppears) : base(closeMode) { this.iconType = iconType; onClick = Functionality.Destroy(); QuestionPopup toShow = QuestionPopup.CreateOkDialog(message); onClose += Functionality.Show(toShow); }
public async Task <bool> ShowQuestionAsync(string title, string message, string acceptButtonText, string cancelButtonText) { var tcs = new TaskCompletionSource <bool>(); var alert = new QuestionPopup(tcs, title, message, acceptButtonText, cancelButtonText); await PopupNavigation.PushAsync(alert); var result = await tcs.Task; await PopupNavigation.RemovePageAsync(alert); return(result); }
public void InitBanking() { auctionPopup = null; language = SettingsController.instance.languageController; //Dodawanie wszystkich graczy do licytacji for (int i = 0; i < GameplayController.instance.session.playerCount; i++) { auctionPlayers.Add(GameplayController.instance.session.FindPlayer(i).GetName()); bidders.Add(GameplayController.instance.session.FindPlayer(i).GetName()); } }
public override void Init(Popup source) { if (buttonPool == null) { InitBox(); } base.Init(source); QuestionPopup popup = source as QuestionPopup; message.text = popup.message; InitButons(); SetButtonsInteractable(false); boxAnimator.SetTrigger("Show"); }
/// <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> /// Rozmieszczanie przycisków w zależności od ich ilości /// </summary> private void InitButons() { QuestionPopup popup = source as QuestionPopup; foreach (Tuple <string, Popup.PopupAction> button in popup.buttons) { GameObject gameObject = buttonPool.TakeObject(); gameObject.GetComponentInChildren <TextMeshProUGUI>().text = button.Item1; gameObject.GetComponent <Button>().onClick.AddListener(delegate { button.Item2?.Invoke(source); }); showedButtons.Add(gameObject); } }
protected void ShowPayPopup(Player player, PlaceVisualiser visualiser, float cost) { LanguageController language = SettingsController.instance.languageController; Player owner = GameplayController.instance.board.GetOwner(visualiser.placeIndex); //Wiadomość o konieczności zapłaty string message = language.GetWord("YOU_MUST_PAY") + owner.GetName() + language.GetWord("FOR_STAY_ON_PLACE") + "\n" + language.GetWord("COST") + cost; Popup.PopupAction onOk = delegate(Popup source) { GameplayController.instance.banking.Pay(player, owner, cost); }; QuestionPopup payPopup = QuestionPopup.CreateOkDialog(message, onOk); PopupSystem.instance.AddPopup(payPopup); }
/// <summary> /// Resets all values under advanced settings to their defaults, /// and asks the user whether to remove all stored bitmaps. /// </summary> public void ResetSettings() { SettingExtender.SaveDefaultSettings(); SettingManager.LoadSettings(); QuestionPopup.ActivatePopup(DeleteBitmapsPrompt, yes => { if (yes) { string path = Path.Combine(BitmapEncoding.PersistentPath, BitmapEncoding.BitmapFileName); if (File.Exists(path)) { File.Delete(path); } print("Deleted bitmaps"); TakePicture.Instance.storedBitmaps = BitmapEncoding.LoadBitmaps(); } }); }
/// <summary> /// Funckja wywoływana, gdy aukcja dobiegnie końca /// <param name="offerForLastBidder">Czy zaoferować kuono budynku ostatniemu graczowi, który został w licytacji, a nigdy nie podbijał</param> /// </summary> private void EndAuction(int placeId, float bid, bool offerForLastBidder = true) { if (auctionPopup != null) { auctionPopup.onClose = null; } if (bidders.Count > 0) { string auctionEndedMessage = SettingsController.instance.languageController.GetWord("AUCTION_ENDED"); IconPopup auctionEnded = new IconPopup(IconPopupType.Auction, auctionEndedMessage); if (GameplayController.instance.session.FindPlayer(bidders[0]).NetworkPlayer.IsLocal) { if (raisers.Contains(bidders[0])) { AquireBuilding(GameplayController.instance.session.FindPlayer(bidders[0]), placeId); } else if (offerForLastBidder && GameplayController.instance.session.FindPlayer(bidders[0]).Money >= bid) { string message = SettingsController.instance.languageController.GetWord("DO_YOU_WANT_TO_BUY") + " " + GameplayController.instance.board.GetField(placeId).GetFieldName() + "\n" + SettingsController.instance.languageController.GetWord("PRICE") + ":" + bid + "?"; Popup.PopupAction yesAction = delegate(Popup source) { AquireBuilding(GameplayController.instance.session.localPlayer, placeId); }; QuestionPopup buyQuestion = QuestionPopup.CreateYesNoDialog(message, yesAction); PopupSystem.instance.AddPopup(buyQuestion); } } if (GameplayController.instance.session.playerCount > 2) { PopupSystem.instance.AddPopup(auctionEnded); } } PopupSystem.instance.ClosePopup(auctionPopup); ClearAuction(); GameplayController.instance.flow.Resume(); }
public override void OnAwake(Player player, PlaceVisualiser visualiser) { if (player.NetworkPlayer.IsLocal && player.Imprisoned) { Board board = GameplayController.instance.board; LanguageController language = SettingsController.instance.languageController; FlowController flow = GameplayController.instance.flow; flow.Pause(); QuestionPopup startTurn = QuestionPopup.CreateOkDialog(language.GetWord("YOU_ARE_IN_PRISON")); flow.CloseOnDiceClose(startTurn); Popup.PopupAction diceRoll = delegate(Popup source) { if (freeingThrows.Contains(board.dice.rollResult)) { QuestionPopup free = QuestionPopup.CreateOkDialog(language.GetWord("YOU_ARE_FREE")); GameplayController.instance.flow.RollResult().Invoke(source); player.Imprisoned = false; PopupSystem.instance.AddPopup(free); } else { QuestionPopup noFree = QuestionPopup.CreateOkDialog(language.GetWord("NOT_THIS_TIME")); GameplayController.instance.diceController.Roll(board.dice.rollResult.Roll1, board.dice.rollResult.Roll2); PopupSystem.instance.AddPopup(noFree); flow.RewindToSkiping(); } }; startTurn.onClose += delegate { PopupSystem.instance.ShowDice(diceRoll); }; PopupSystem.instance.AddPopup(startTurn); } else { base.OnAwake(player, visualiser); } }
/// <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); }
public void ClearAuction() { auctionPopup = null; raisers.Clear(); bidders = new List <string>(auctionPlayers); //Dodawanie wszystkich graczy do licytacji }