public override void SetContent(ScriptableObject scriptableObject) { if (scriptableObject.GetType() != typeof(SkillTreeUpgradeConfig)) { return; } SkillTreeUpgradeConfig skillTreeUpgrade = (SkillTreeUpgradeConfig)scriptableObject; this.skillNameText.text = skillTreeUpgrade.skillName; this.descriptionText.text = skillTreeUpgrade.description; this.moneyCostsText.text = skillTreeUpgrade.moneyCosts.ToString() + " $"; this.xpCostsText.text = skillTreeUpgrade.xpCosts.ToString() + " XP"; // Soldier float relativeStrength = skillTreeUpgrade.soldierRelativeStrength + skillTreeUpgrade.moralPerSoldierRelativeStrength; AdjustTextStyle(this.soldierRelativeStrengthText, relativeStrength); this.soldierRelativeStrengthText.text = AddSignToAttribute(relativeStrength) + "%"; AdjustTextStyle(this.soldierRelativePriceText, skillTreeUpgrade.soldierRelativePrice); this.soldierRelativePriceText.text = AddSignToAttribute(skillTreeUpgrade.soldierRelativePrice) + "%"; AdjustTextStyle(this.soldierRelativeRangeText, skillTreeUpgrade.soldierRelativeRange); this.soldierRelativeRangeText.text = AddSignToAttribute(skillTreeUpgrade.soldierRelativeRange) + "%"; // Turret AdjustTextStyle(this.turretRelativeStrengthText, skillTreeUpgrade.turretRelativeStrength); this.turretRelativeStrengthText.text = AddSignToAttribute(skillTreeUpgrade.turretRelativeStrength) + "%"; AdjustTextStyle(this.turretRelativePriceText, skillTreeUpgrade.turretRelativePrice); this.turretRelativePriceText.text = AddSignToAttribute(skillTreeUpgrade.turretRelativePrice) + "%"; AdjustTextStyle(this.turretRelativeRangeText, skillTreeUpgrade.turretRelativeRange); this.turretRelativeRangeText.text = AddSignToAttribute(skillTreeUpgrade.turretRelativeRange) + "%"; // Economy AdjustTextStyle(this.constantMoneyIncomeText, skillTreeUpgrade.constantMoneyIncome); this.constantMoneyIncomeText.text = AddSignToAttribute(skillTreeUpgrade.constantMoneyIncome) + "$/sec"; AdjustTextStyle(this.specialAttackRelativeCooldownText, skillTreeUpgrade.specialAttackRelativeCooldown); this.specialAttackRelativeCooldownText.text = AddSignToAttribute(skillTreeUpgrade.specialAttackRelativeCooldown) + "%"; AdjustTextStyle(this.relativeSoldierCashbackText, skillTreeUpgrade.relativeSoldierCashback); this.relativeSoldierCashbackText.text = AddSignToAttribute(skillTreeUpgrade.relativeSoldierCashback) + "%"; }
private void UpdateAggregatedStats() { this.aggregatedStats = ScriptableObject.CreateInstance <SkillTreeUpgradeConfig>(); this.aggregatedStats.soldierRelativePrice = 1; this.aggregatedStats.soldierRelativeStrength = 1; this.aggregatedStats.soldierRelativeRange = 1; this.aggregatedStats.turretRelativePrice = 1; this.aggregatedStats.turretRelativeStrength = 1; this.aggregatedStats.turretRelativeRange = 1; this.aggregatedStats.constantMoneyIncome = 0; this.aggregatedStats.specialAttackRelativeCooldown = 1; this.aggregatedStats.relativeSoldierCashback = 0; this.unlockedSkills.ForEach(skill => { // soldier aggregatedStats.soldierRelativeStrength *= percentToFactor(skill.soldierRelativeStrength); aggregatedStats.soldierRelativePrice *= percentToFactor(skill.soldierRelativePrice); aggregatedStats.soldierRelativeRange *= percentToFactor(skill.soldierRelativeRange); if (skill.isMoralActive) { aggregatedStats.isMoralActive = true; } // engineer aggregatedStats.turretRelativeStrength *= percentToFactor(skill.turretRelativeStrength); aggregatedStats.turretRelativePrice *= percentToFactor(skill.turretRelativePrice); aggregatedStats.turretRelativeRange *= percentToFactor(skill.turretRelativeRange); if (skill.canBuildTurrets) { aggregatedStats.canBuildTurrets = true; } // economy aggregatedStats.constantMoneyIncome += skill.constantMoneyIncome; aggregatedStats.specialAttackRelativeCooldown *= percentToFactor(skill.specialAttackRelativeCooldown); if (Mathf.Abs(aggregatedStats.relativeSoldierCashback) < 0.01f) { aggregatedStats.relativeSoldierCashback += percentToFactor(skill.relativeSoldierCashback); } else { aggregatedStats.relativeSoldierCashback *= percentToFactor(skill.relativeSoldierCashback); } }); }