/// <summary>
    /// Obsługa eventu ulepszenia pola
    /// </summary>
    /// <param name="playerName">Nazwa gracza, który ulepszył pole</param>
    /// <param name="placeId"></param>
    private void OnUpgradeBuilding(string playerName, int placeId)
    {
        if (placeIndex == placeId)
        {
            if (field is NormalBuilding)
            {
                NormalBuilding upgradeBuilding = field as NormalBuilding;

                upgradeBuilding.OnUpgrade(GameplayController.instance.session.FindPlayer(playerName), this);

                Explosion();
            }
        }
    }
示例#2
0
    /// <summary>
    /// Ulepsza budynek należący do danego gracza i pobiera za to odpowiednią należność
    /// </summary>
    /// <param name="player">Gracz, który ulepsza budynek</param>
    /// <param name="placeId">Numer pola, które jest ulepszane</param>
    public void UpgradeBuilding(Player player, int placeId)
    {
        NormalBuilding upgradeBuilding = GameplayController.instance.board.GetField(placeId) as NormalBuilding;

        //Sprawdzanie, czy budynek zawiera następny tier
        if (upgradeBuilding.HasNextTier(placeId))
        {
            player.DecreaseMoney(GetUpgradePrice(placeId));
            GameplayController.instance.board.NextTier(placeId);
            EventManager.instance.SendOnPlayerUpgradedBuilding(player.GetName(), placeId);
        }
        else
        {
            Debug.LogError("Budynek nie zawiera następnego tieru");
        }
    }
    /// <summary>
    /// Inicjuje modele stojące na polu
    /// </summary>
    protected override void InitModels()
    {
        GameObject startModel = Instantiate(field.GetStartModel(), gameObject.GetComponent <Transform>());

        models.Add(startModel);
        if (field is NormalBuilding)
        {
            startModel.SetActive(false);
            startModel.GetComponent <Transform>().Rotate(new Vector3(0f, 0f, -gameObject.GetComponent <Transform>().rotation.eulerAngles.z));
            NormalBuilding nb = field as NormalBuilding;
            for (int i = 1; i < nb.tiersCount; i++)
            {
                GameObject model = Instantiate(nb.tiers[i].model, gameObject.GetComponent <Transform>());
                model.SetActive(false);
                models.Add(model);
            }
        }

        //Przywracanie budynku po wczytaniu save
        ShowModel(GameplayController.instance.board.GetTier(placeIndex));
    }