Example #1
0
    public void PickDefender(DefenderButton defenderButton)
    {
        // if it is the enemies turn, prevent placement
        if (!TurnManager.Instance.currentlyPlayersTurn)
        {
            Debug.Log("Player cannot place new defenders during enemy turn...");
        }

        // If player does not have enough gold
        if (PlayerDataManager.Instance.currentGold < defenderButton.goldCost)
        {
            Debug.Log("Player does not have enough gold to purchase " + defenderButton.defenderPrefab.name);
            return;
        }
        // If player does not have availble troop points
        if (PlayerDataManager.Instance.currentTroopCount + defenderButton.troopCost > PlayerDataManager.Instance.currentMaxTroopCount)
        {
            Debug.Log("Can't recruit troop: recruting troop would bring player over the maximum troop count" + defenderButton.defenderPrefab.name);
            return;
        }

        LevelManager.Instance.HighlightTiles(LevelManager.Instance.GetSpaceShipControlZoneTile());
        Debug.Log("Defender button for " + defenderButton.name + " clicked on");
        ClickedDefender = defenderButton;
        Hover.Instance.Activate(defenderButton.Sprite);
    }
    private static void ChangeButtonColor(DefenderButton button, Color32 color)
    {
        Transform t = button.transform;

        t.Find("Image").GetComponent <SpriteRenderer>().color          = color;
        t.Find("Button Graphic").GetComponent <SpriteRenderer>().color = color;
    }
    public void SelectDefender(DefenderButton defenderButton)
    {
        foreach (DefenderButton button in defenderSpawnButtons)
        {
            button.image.color = notSelectedColor;
        }

        defenderButton.image.color = selectedColor;
        DefenderSpawner.instance.SetSelectedDefender(defenderButton.defender);
    }
Example #4
0
 private void SetDefender(int idx)
 {
     ListSlot[idx].SpawnDefender(currentButton.GetDefenderPref());
     ListButton.Remove(currentButton);
     Destroy(currentButton.gameObject);
     ResetButtonIndex();
     currentButton = null;
     //StopCoroutine(ButtonSpawn());
     //StopAllCoroutines();
     //StartCoroutine(ButtonSpawn());
 }
Example #5
0
    // Attempts to select a defender prefab to be spawned on click, and it's button to deselect it
    // Returns true if it was successfully selected
    public bool SelectDefender(Defender newDefender, DefenderButton newDefenderButton)
    {
        if (!currencyManager.Affords(newDefender.GetCost()))
        {
            return(false);
        }

        defender       = newDefender;
        defenderButton = newDefenderButton;

        return(true);
    }
Example #6
0
 public void Select()
 {
     DefenderButton.SelectedDefenderButton = this;
     foreach (var button in this._defenderButtons)
     {
         button.Unselect();
     }
     foreach (var sprite in this.Sprites)
     {
         sprite.color = Color.white;
     }
 }
Example #7
0
    void OnMouseDown()
    {
        DefenderButton defenderToSpawn = DefenderButton.selectedDefender.GetComponent <DefenderButton>();

        if (defenderToSpawn != null)
        {
            Vector2 gridCoord = SnapToGrid(ConvertMouseCoordToWorldView());

            GameObject newDefender = Instantiate(defenderToSpawn.DefenderPrefab, gridCoord, Quaternion.identity);
            newDefender.transform.parent = m_defenderContainer;

            CurrentStarCount -= defenderToSpawn.StarCost;
        }
    }
Example #8
0
    private GameObject _gameObject; // generic for prefabs that have data dispersed

    public void SetInfo(GameObject currentGameObject)
    {
        _destroyInfoInstances();

        if (!currentGameObject)
        {
            return;
        }

        _gameObject = currentGameObject;

        var shooter           = currentGameObject.GetComponent <Shooter>();
        var defender          = currentGameObject.GetComponent <Defender>();
        var attacker          = currentGameObject.GetComponent <Attacker>();
        var currencyButton    = currentGameObject.GetComponent <CurrencyButton>();
        var _currencyProducer = currentGameObject.GetComponent <CurrencyProducer>();

        _defenderButton = currentGameObject.GetComponent <DefenderButton>();
        _controlTower   = currentGameObject.GetComponent <ControlTower>();

        if (shooter)
        {
            _currentInfoShooter = Instantiate(infoShooter, transform.position, Quaternion.identity);
            _currentInfoShooter.transform.SetParent(transform);
        }
        else if (_controlTower || currencyButton)
        {
            _currentInfoResources = Instantiate(infoResources, transform.position, Quaternion.identity);
            _currentInfoResources.transform.SetParent(transform);
        }
        else if (_defenderButton)
        {
            _currentInfoDefenderButton = Instantiate(infoDefenderButton, transform.position, Quaternion.identity);
            _currentInfoDefenderButton.transform.SetParent(transform);
        }
        else if (attacker || _currencyProducer)
        {
            _currentInfoDamageHealthBar = Instantiate(infoDamageHealthBar, transform.position, Quaternion.identity);
            _currentInfoDamageHealthBar.transform.SetParent(transform);
        }
        else if (defender)     // Box
        {
            _currentInfoBox = Instantiate(infoBox, transform.position, Quaternion.identity);
            _currentInfoBox.transform.SetParent(transform);
        }
    }
Example #9
0
    public void onButtonSelect(int idx)
    {
        if (idx >= ListButton.Count)
        {
            return;
        }

        if (currentButton != null)
        {
            currentButton.UnSelect();
        }

        var tempButton = ListButton[idx];

        if (tempButton == null)
        {
            return;
        }
        tempButton.Select();
        currentButton = tempButton;
    }
Example #10
0
    IEnumerator ButtonSpawn()
    {
        while (true)
        {
            if (ListButton.Count < maxButton)
            {
                yield return(new WaitForSeconds(2f));

                //spawn
                string cardname = listcards[UnityEngine.Random.Range(0, listcards.Length)];
                var    card     = GetCard(cardname);
                if (card == null)
                {
                    yield return(null);
                }
                var button = card.GetDefenderButton();
                if (button == null)
                {
                    yield return(null);
                }
                DefenderButton defenderButton = Instantiate(button, transform.position, Quaternion.identity);
                defenderButton.Card                 = button.Card;
                defenderButton.transform.parent     = buttonSpawnParent;
                defenderButton.transform.localScale = Vector3.one;
                //buttonindex++;
                defenderButton.observer = this;
                defenderButton.index    = ListButton.Count;
                ListButton.Add(defenderButton);
                yield return(new WaitForSeconds(timeSpawnButton));

                Debug.Log("spawn button");
            }
            else
            {
                yield return(null);
            }
        }
    }
Example #11
0
    // Attempt to spawn a defender instance where the player has specified.
    private void OnMouseDown()
    {
        // Ascertain the snapped grid position.
        Vector2 rawPosition     = this.CalculateWorldPointOfMouseClick();
        Vector2 snappedPosition = this.SnapToGrid(rawPosition);

        // Attempt to spawn a new defender.
        GameObject selectedDefender = DefenderButton.GetSelectedDefender();

        if (selectedDefender && Defender.IsObjectDefender(selectedDefender))
        {
            // Attempt to spend the stars and spawn the defender instance on success.
            int starCost = this.GetDefenderCost(selectedDefender);
            if (this.starDisplay.UseStars(starCost) == StarDisplay.Status.SUCCESS)
            {
                SpawnDefender(snappedPosition, selectedDefender);
            }
            else
            {
                Debug.Log("Can't afford to buy a " + selectedDefender + ". Insufficient funds.");
            }
        }
    }
 private static void DimButton(DefenderButton button)
 {
     ChangeButtonColor(button, unselectedColor);
 }