private string GetBuffText(Tower.Data tower, int level, bool showUpgrade) { if (tower.buffTarget == Tower.BuffTarget.None) { return("No buff"); } string percUpgText = string.Empty; string rangeUpgText = string.Empty; if (showUpgrade && level + 1 < tower.levels.Count) { if (tower.buffType == Tower.BuffType.AttackDamage) { percUpgText = GetUpgText(Mathf.RoundToInt((tower.levels[level + 1].attackDamageAura - tower.levels[level].attackDamageAura) * 100)); } else { percUpgText = GetUpgText(Mathf.RoundToInt((tower.levels[level + 1].attackSpeedAura - tower.levels[level].attackSpeedAura) * 100)); } rangeUpgText = GetUpgText(tower.levels[level + 1].auraRange - tower.levels[level].auraRange); } float auraPercentage = tower.buffType == Tower.BuffType.AttackDamage ? tower.levels[level].attackDamageAura : tower.levels[level].attackSpeedAura; return(string.Format("Aura: {0}\nAura Percentage: {1}% {2}\nAura Range: {3} {4}", tower.buffType, Mathf.RoundToInt(auraPercentage * 100), percUpgText, tower.levels[level].auraRange, rangeUpgText)); }
public void Show(Tower.Data tower, int level, bool showUpgrade = false) { visible = true; int cost = showUpgrade ? tower.levels[level + 1].cost : tower.levels[level].cost; titleText.text = tower.towerName; costText.text = level == tower.levels.Count - 1 ? string.Empty : "Cost: " + cost; detailsText.text = GetAttackText(tower, level, showUpgrade) + '\n' + GetBuffText(tower, level, showUpgrade); upgradeButton.SetActive(showUpgrade); sellButton.SetActive(level > 0); sellText.gameObject.SetActive(level > 0); gameObject.SetActive(true); showAnimation.DOPlayForward(); }
private string GetAttackText(Tower.Data tower, int level, bool showUpgrade) { if (tower.attackTarget == Tower.AttackTarget.None) { return("No attack"); } string dmgUpgText = string.Empty, intUpgTex = string.Empty, rangeUpgText = string.Empty; if (showUpgrade && level + 1 < tower.levels.Count) { dmgUpgText = GetUpgText(tower.levels[level + 1].attackDamage - tower.levels[level].attackDamage); intUpgTex = GetUpgText(tower.levels[level + 1].attackInterval - tower.levels[level].attackInterval, false); rangeUpgText = GetUpgText(tower.levels[level + 1].attackRange - tower.levels[level].attackRange); } return(string.Format("Attack Target: Closest\nAttack Type: {0}\nOn Hit Effect: {1}\nDamage: {2} {3}\nInterval: {4} {5}\nRange: {6} {7}", tower.attackType, tower.onHitEffect, tower.levels[level].attackDamage, dmgUpgText, tower.levels[level].attackInterval, intUpgTex, tower.levels[level].attackRange, rangeUpgText)); }