コード例 #1
0
    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) + "%";
    }
コード例 #2
0
    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);
            }
        });
    }