Beispiel #1
0
    /// <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());
        }
    }
    /// <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);
            }
        }
    }
    public override void OnBuy(Player player, PlaceVisualiser visualiser)
    {
        base.OnBuy(player, visualiser);

        visualiser.ShowNextModel();
        GameplayController.instance.board.NextTier(visualiser.placeIndex);
    }
Beispiel #4
0
 /// <summary>
 /// Zdarzenia wywoływane, gdy gracz wejdzie na pole
 /// </summary>
 /// <param name="player">Gracz, który wywołał zdarzenie</param>
 /// <param name="visualiser">Pole, na którym zostało wywołane zdarzenie</param>
 public virtual void OnEnter(Player player, PlaceVisualiser visualiser)
 {
     if (player.NetworkPlayer.IsLocal && this is BuildingField)
     {
         GameplayController.instance.arController.centerBuilding.GetComponent <CenterVisualiser>().ShowField(this, visualiser.placeIndex);
     }
 }
Beispiel #5
0
 public override void OnPassby(Player player, PlaceVisualiser visualiser)
 {
     base.OnPassby(player, visualiser);
     if (player.NetworkPlayer.IsLocal)
     {
         GivePassMoney(player);
     }
 }
    public override void OnEnter(Player player, PlaceVisualiser visualiser)
    {
        base.OnEnter(player, visualiser);

        if (player.NetworkPlayer.IsLocal)
        {
            ShowRandomCard(player);
        }
    }
Beispiel #7
0
    public override void OnEnter(Player player, PlaceVisualiser visualiser)
    {
        base.OnEnter(player, visualiser);

        if (player.NetworkPlayer.IsLocal)
        {
            if (GameplayController.instance.board.GetOwner(visualiser.placeIndex) == null)
            {
                //Pole nie ma właściciela
                ShowBuyPopup(player, visualiser);
            }
        }
    }
Beispiel #8
0
    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);
    }
    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);
        }
    }
    public override void OnEnter(Player player, PlaceVisualiser visualiser)
    {
        base.OnEnter(player, visualiser);

        if (player.NetworkPlayer.IsLocal)
        {
            if (GameplayController.instance.board.GetOwner(visualiser.placeIndex) != null)
            {
                //Pole ma właściciela

                if (GameplayController.instance.board.GetOwner(visualiser.placeIndex).GetName() == player.GetName())
                {
                    //Jeżeli gracz, który jest właścicielem stanął na polu
                    ShowUpgradePopup(player, visualiser, SettingsController.instance.languageController);
                }
                else
                {
                    //Jeżeli gracz, który nie jest właścicielem stanął na polu
                    ShowPayPopup(player, visualiser, GetTier(GameplayController.instance.board.GetTier(visualiser.placeIndex)).enterCost);
                }
            }
        }
    }
Beispiel #11
0
 /// <summary>
 /// Zdarzenie wywoływane przy sprzedaniu pola
 /// </summary>
 /// <param name="player">Gracz, który sprzedał pole</param>
 /// <param name="visualiser">Pole, na którym zostało wywołane zdarzenie</param>
 public virtual void OnSell(Player player, PlaceVisualiser visualiser)
 {
 }
 public void OnUpgrade(Player player, PlaceVisualiser visualiser)
 {
     visualiser.ShowNextModel();
 }
Beispiel #13
0
 /// <summary>
 /// Zdarzenie wywoływane gdy gracz rozpocznie rundę na danym polu
 /// </summary>
 /// <param name="player">Instancja gracza</param>
 /// <param name="visualiser">Instancja pola</param>
 public virtual void OnAwake(Player player, PlaceVisualiser visualiser)
 {
     GameplayController.instance.flow.DefaultBegining();
 }
Beispiel #14
0
 /// <summary>
 /// Zdarzenie wywoływane, gdy gracz przejdzie przez pole
 /// </summary>
 /// <param name="player">Gracz, który wywołał zdarzenie</param>
 /// <param name="visualiser">Pole, na którym zostało wywołane zdarzenie</param>
 public virtual void OnPassby(Player player, PlaceVisualiser visualiser)
 {
 }
Beispiel #15
0
 /// <summary>
 /// Zdarzenia wywoływane, gdy gracz zejdzie z pola
 /// </summary>
 /// <param name="player">Gracz, który wywołał zdarzenie</param>
 /// <param name="visualiser">Pole, na którym zostało wywołane zdarzenie</param>
 public virtual void OnLeave(Player player, PlaceVisualiser visualiser)
 {
 }