summaryrefslogtreecommitdiff
path: root/GameCode/DOTUpgradeCard.cs
diff options
context:
space:
mode:
Diffstat (limited to 'GameCode/DOTUpgradeCard.cs')
-rw-r--r--GameCode/DOTUpgradeCard.cs109
1 files changed, 109 insertions, 0 deletions
diff --git a/GameCode/DOTUpgradeCard.cs b/GameCode/DOTUpgradeCard.cs
new file mode 100644
index 0000000..e90b065
--- /dev/null
+++ b/GameCode/DOTUpgradeCard.cs
@@ -0,0 +1,109 @@
+using UnityEngine;
+using UnityEngine.UI;
+
+public class DOTUpgradeCard : UpgradeCard
+{
+ [SerializeField]
+ private int bleedAmount;
+
+ [SerializeField]
+ private int burnAmount;
+
+ [SerializeField]
+ private int poisonAmount;
+
+ [SerializeField]
+ private GameObject bleedUI;
+
+ [SerializeField]
+ private GameObject burnUI;
+
+ [SerializeField]
+ private GameObject poisonUI;
+
+ [SerializeField]
+ private GameObject stunDmgUI;
+
+ [SerializeField]
+ private Text bleedText;
+
+ [SerializeField]
+ private Text burnText;
+
+ [SerializeField]
+ private Text poisonText;
+
+ [SerializeField]
+ private Text stunDmgText;
+
+ [SerializeField]
+ private int bonusDamageOnBleed;
+
+ [SerializeField]
+ private int bonusDamageOnBurn;
+
+ [SerializeField]
+ private int bonusDamageOnPoison;
+
+ [SerializeField]
+ private int bonusDamageOnStun;
+
+ [SerializeField]
+ private float poisonSlowPercent;
+
+ [SerializeField]
+ private float burnSpeedDamagePercentBonus;
+
+ [SerializeField]
+ private float bleedingCritChance;
+
+ [SerializeField]
+ private float bleedPop;
+
+ [SerializeField]
+ private float burnPop;
+
+ [SerializeField]
+ private float poisonPop;
+
+ public override void Upgrade()
+ {
+ base.Upgrade();
+ GameManager.instance.dotTick += new Vector3(bleedAmount, burnAmount, poisonAmount);
+ MonsterManager.instance.bonusDamageOnBleed += bonusDamageOnBleed;
+ MonsterManager.instance.bonusDamageOnBurn += bonusDamageOnBurn;
+ MonsterManager.instance.bonusDamageOnPoison += bonusDamageOnPoison;
+ MonsterManager.instance.bonusDamageOnStun += bonusDamageOnStun;
+ MonsterManager.instance.poisonSlowPercent += poisonSlowPercent;
+ MonsterManager.instance.burnSpeedDamagePercentBonus += burnSpeedDamagePercentBonus;
+ MonsterManager.instance.bleedingCritChance += bleedingCritChance;
+ MonsterManager.instance.bleedPop += bleedPop;
+ MonsterManager.instance.burnPop += burnPop;
+ MonsterManager.instance.poisonPop += poisonPop;
+ if (bleedAmount > 0 || bonusDamageOnBleed > 0)
+ {
+ bleedUI.SetActive(value: true);
+ bleedText.text = GameManager.instance.dotTick.x + " \n (+" + (1 + MonsterManager.instance.bonusDamageOnBleed) + ")";
+ }
+ if (burnAmount > 0 || bonusDamageOnBurn > 0 || burnSpeedDamagePercentBonus > 0f)
+ {
+ burnUI.SetActive(value: true);
+ string text = GameManager.instance.dotTick.y + " \n (+" + (1 + MonsterManager.instance.bonusDamageOnBurn) + ")";
+ if (MonsterManager.instance.burnSpeedDamagePercentBonus > 0f)
+ {
+ text = text + "\n" + Mathf.FloorToInt(0.01f + MonsterManager.instance.burnSpeedDamagePercentBonus) + "xSlow%";
+ }
+ burnText.text = text;
+ }
+ if (poisonAmount > 0 || bonusDamageOnPoison > 0)
+ {
+ poisonUI.SetActive(value: true);
+ poisonText.text = GameManager.instance.dotTick.z + " \n (+" + (1 + MonsterManager.instance.bonusDamageOnPoison) + ")";
+ }
+ if (bonusDamageOnStun > 0)
+ {
+ stunDmgUI.SetActive(value: true);
+ stunDmgText.text = "+" + MonsterManager.instance.bonusDamageOnStun;
+ }
+ }
+}