예제 #1
0
 void Display()
 {
     if (currentUnit != null)
     {
         DefenderBehaviour unit        = currentUnit.defenderPrefab.defenderUnit;
         float             avgDamage   = (unit.ammo.minDamage + unit.ammo.maxDamage) / 2f;
         float             avgFirerate = 1 / ((unit.minShootDelay + unit.maxShootDelay) / 2f);
         float             avgDPS      = avgDamage * avgFirerate;
         infoText.text = unit.defenderName +
                         "\n" + unit.costToSpawn +
                         "\n" + avgDamage.ToString("0.##") +
                         "\n" + avgFirerate.ToString("0.##") + "/sec" +
                         "\n" + avgDPS.ToString("0.##") +
                         "\n" + unit.GetComponent <Health>().maxHealth +
                         "\n" + unit.GetComponent <Health>().defence;
     }
     else
     {
         Debug.LogWarning("CURRENT UNIT IS NULL");
     }
 }
예제 #2
0
    private void UpdatePanels()
    {
        int i           = 0;
        int currentTier = PlayerData.GetShipTier(currentDefender.shipFamily);

        // Update stats text
        foreach (Text tierStatsText in tierStatsTexts)
        {
            DefenderBehaviour unit      = currentDefenderTiers[i].defenderUnit;
            float             avgDamage = (unit.ammo.minDamage + unit.ammo.maxDamage) / 2f;
            Debug.Log("Avg Damange: " + unit.ammo.minDamage + " and " + unit.ammo.maxDamage + " = " + avgDamage);
            float avgFirerate = 1 / ((unit.minShootDelay + unit.maxShootDelay) / 2);
            float avgDPS      = avgDamage * avgFirerate;
            tierStatsText.text = unit.defenderName +
                                 "\n" + unit.costToSpawn +
                                 "\n" + avgDamage.ToString("0.##") +
                                 "\n" + avgFirerate.ToString("0.##") + "/sec" +
                                 "\n" + avgDPS.ToString("0.##") +
                                 "\n" + unit.GetComponent <Health>().maxHealth +
                                 "\n" + unit.GetComponent <Health>().defence;
            i++;
        }
        // Grey-out the panels
        i = 0;
        foreach (GameObject tierPanel in tierPanels)
        {
            Debug.Log("Current tier is: " + currentTier);  // TODO: Repetitive code
            if (currentTier != (i + 1))
            {
                foreach (Transform child in tierPanel.transform)
                {
                    Image imgComponent = child.GetComponent <Image>();
                    Text  txtComponent = child.GetComponent <Text>();
                    if (imgComponent != null)
                    {
                        imgComponent.color = greyedOutColour;
                    }
                    if (txtComponent != null)
                    {
                        txtComponent.color = greyedOutColour;
                    }
                }
            }
            else
            {
                foreach (Transform child in tierPanel.transform)
                {
                    Image imgComponent = child.GetComponent <Image>();
                    Text  txtComponent = child.GetComponent <Text>();
                    if (imgComponent != null)
                    {
                        imgComponent.color = Color.white;
                    }
                    if (txtComponent != null)
                    {
                        txtComponent.color = Color.white;
                    }
                }
            }
            i++;
        }
        // Update the upgrade prices text
        i = 0;
        for (int j = 1; j < maxTier; j++, i++)
        {
            string cost = currentDefenderTiers[j].costToUpgrade.ToString();
            priceText[i].text = "$" + cost;
        }
        // Update tier sprites
        for (int j = 0; j < maxTier; j++)
        {
            tierSprites[j].sprite = currentDefenderTiers[j].defenderUnit.GetComponent <SpriteRenderer>().sprite;
        }
        // Update the button text. Grey-out the button if the ship is already at its maximum tier
        Text   buttonTxtComp = buyButton.transform.GetComponentInChildren <Text>();
        string nextTier      = " ";

        if (currentTier >= maxTier)
        {
            buyButton.enabled   = false;
            buttonTxtComp.color = greyedOutColour;
            buttonTxtComp.text  = "No More Upgrades";
        }
        else
        {
            nextTier          += currentDefenderTiers[currentTier].defenderUnit.defenderName;
            buttonTxtComp.text = "Upgrade to " + nextTier;
            if (currentDefenderTiers[currentTier].costToUpgrade > creditsDisplay.GetCredits())
            {
                buyButton.enabled   = false;
                buttonTxtComp.color = greyedOutColour;
            }
            else
            {
                buyButton.enabled   = true;
                buttonTxtComp.color = Color.white;
            }
        }
    }