コード例 #1
0
    public override string GetTowerInfo(bool isUpgradeInfo)
    {
        string procChanceIncrease     = string.Empty;
        string debuffDurationIncrease = string.Empty;
        string multiplierIncrease     = string.Empty;
        string rangeIncrease          = string.Empty;
        string damageIncrease         = string.Empty;

        if (isUpgradeInfo)
        {
            BulletTowerUpgrade upgrade = upgrades[0];

            procChanceIncrease     = " + " + upgrade.ProcChanceIncrease;
            debuffDurationIncrease = " + " + upgrade.DebuffDurationIncrease;
            multiplierIncrease     = " + " + upgrade.MultiplierIncrease;
            rangeIncrease          = " + " + upgrade.RangeIncrease;
            damageIncrease         = " + " + upgrade.DamageIncrease;
        }

        string debuffInfo = string.Format("Change <color=#ef5350>{0}</color>% to increase <color=#ef5350>{1}</color> times shiled reset on <color=#ef5350>{2}</color> sec",
                                          bulletDebuff.ProcChance + " <color=#aed581>" + procChanceIncrease + "</color> ",
                                          bulletDebuff.MultiplierShieldRecoveryDelay + " <color=#aed581>" + multiplierIncrease + "</color>",
                                          bulletDebuff.Duration + " <color=#aed581>" + debuffDurationIncrease + "</color>");


        string info = string.Format("<color=#ef5350>{0}</color> level {1}\nrange <color=#ef5350>{2}</color>\ndamage <color=#ef5350>{3}</color>\ndebuff\n{4}",
                                    GetType(),
                                    towerStats.Level,
                                    towerStats.Range + " <color=#aed581>" + rangeIncrease + "</color>",
                                    towerStats.Damage + " <color=#aed581>" + damageIncrease + "</color>",
                                    debuffInfo);

        return(info);
    }
コード例 #2
0
    public override void Upgrade()
    {
        if (!IsMaxLevel)
        {
            BulletTowerUpgrade upgrade = upgrades[UpgradeIndex];

            towerStats.Level         = upgrade.Level;
            towerStats.Price        += upgrade.UpgradePrice;
            towerStats.Damage       += upgrade.DamageIncrease;
            towerStats.Range        += upgrade.RangeIncrease;
            bulletDebuff.Duration   += upgrade.DebuffDurationIncrease;
            bulletDebuff.ProcChance += upgrade.ProcChanceIncrease;
            bulletDebuff.MultiplierShieldRecoveryDelay += upgrade.MultiplierIncrease;

            GameObject.Find("GameManager").GetComponent <GameManager>().Money -= upgrade.UpgradePrice;

            UpgradeIndex++;
        }

        if (UpgradeIndex == upgrades.Length)
        {
            isMaxLevel = true;
        }
    }