summaryrefslogtreecommitdiff
path: root/Assembly_CSharp/TowerUpgradeCard.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assembly_CSharp/TowerUpgradeCard.cs')
-rw-r--r--Assembly_CSharp/TowerUpgradeCard.cs117
1 files changed, 117 insertions, 0 deletions
diff --git a/Assembly_CSharp/TowerUpgradeCard.cs b/Assembly_CSharp/TowerUpgradeCard.cs
new file mode 100644
index 0000000..c37da5e
--- /dev/null
+++ b/Assembly_CSharp/TowerUpgradeCard.cs
@@ -0,0 +1,117 @@
+using UnityEngine;
+
+public class TowerUpgradeCard : UpgradeCard
+{
+ [SerializeField]
+ private TowerType towerType;
+
+ [SerializeField]
+ private float range;
+
+ [SerializeField]
+ private int damage;
+
+ [SerializeField]
+ private int healthDmg;
+
+ [SerializeField]
+ private int armorDmg;
+
+ [SerializeField]
+ private int shieldDmg;
+
+ [SerializeField]
+ private float slowPercent;
+
+ [SerializeField]
+ private float bleedPercent;
+
+ [SerializeField]
+ private float burnPercent;
+
+ [SerializeField]
+ private float poisonPercent;
+
+ [SerializeField]
+ private float blast;
+
+ [SerializeField]
+ private float critChance;
+
+ [SerializeField]
+ private float critChanceLevelMultiplier;
+
+ [SerializeField]
+ private float stunChance;
+
+ [SerializeField]
+ private float manaConsumptionAddition;
+
+ [SerializeField]
+ private float obeliskTimeOnTargetMultiplier;
+
+ public override void Upgrade()
+ {
+ if (range != 0f)
+ {
+ TowerManager.instance.AddBonusRange(towerType, range);
+ }
+ if (damage != 0)
+ {
+ TowerManager.instance.AddBonusBaseDamage(towerType, damage);
+ }
+ if (healthDmg != 0)
+ {
+ TowerManager.instance.AddBonusHealthDamage(towerType, healthDmg);
+ }
+ if (armorDmg != 0)
+ {
+ TowerManager.instance.AddBonusArmorDamage(towerType, armorDmg);
+ }
+ if (shieldDmg != 0)
+ {
+ TowerManager.instance.AddBonusShieldDamage(towerType, shieldDmg);
+ }
+ if (slowPercent != 0f)
+ {
+ TowerManager.instance.AddBonusSlow(towerType, slowPercent);
+ }
+ if (bleedPercent != 0f)
+ {
+ TowerManager.instance.AddBonusBleed(towerType, bleedPercent);
+ }
+ if (burnPercent != 0f)
+ {
+ TowerManager.instance.AddBonusBurn(towerType, burnPercent);
+ }
+ if (poisonPercent != 0f)
+ {
+ TowerManager.instance.AddBonusPoison(towerType, poisonPercent);
+ }
+ if (blast != 0f)
+ {
+ TowerManager.instance.AddBonusBlast(towerType, blast);
+ }
+ if (critChance != 0f)
+ {
+ TowerManager.instance.AddCritChance(towerType, critChance);
+ }
+ if (critChanceLevelMultiplier != 0f)
+ {
+ TowerManager.instance.AddCritChanceLevelMultiplier(towerType, critChanceLevelMultiplier);
+ }
+ if (stunChance != 0f)
+ {
+ TowerManager.instance.AddStunChance(towerType, stunChance);
+ }
+ if (manaConsumptionAddition != 0f)
+ {
+ TowerManager.instance.AddManaConsumption(towerType, manaConsumptionAddition);
+ }
+ if (obeliskTimeOnTargetMultiplier != 0f)
+ {
+ TowerManager.instance.obeliskTimeOnTargetMultiplier += obeliskTimeOnTargetMultiplier;
+ }
+ base.Upgrade();
+ }
+}