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"); } }
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; } } }