summaryrefslogtreecommitdiff
path: root/GameCode/MonsterUpgradeCard.cs
diff options
context:
space:
mode:
Diffstat (limited to 'GameCode/MonsterUpgradeCard.cs')
-rw-r--r--GameCode/MonsterUpgradeCard.cs57
1 files changed, 57 insertions, 0 deletions
diff --git a/GameCode/MonsterUpgradeCard.cs b/GameCode/MonsterUpgradeCard.cs
new file mode 100644
index 0000000..d78ab81
--- /dev/null
+++ b/GameCode/MonsterUpgradeCard.cs
@@ -0,0 +1,57 @@
+using UnityEngine;
+using UnityEngine.UI;
+
+public class MonsterUpgradeCard : UpgradeCard
+{
+ [SerializeField]
+ private GameObject banditObject;
+
+ [SerializeField]
+ private Text banditText;
+
+ [SerializeField]
+ private int extraTowerDamage;
+
+ [SerializeField]
+ private int extraGoldDrop;
+
+ [SerializeField]
+ private float manaDropOnDeath;
+
+ [SerializeField]
+ private float speedBonus;
+
+ [SerializeField]
+ private float slowCapMod;
+
+ [SerializeField]
+ private float hasteCapMod;
+
+ public override void Upgrade()
+ {
+ base.Upgrade();
+ MonsterManager.instance.extraTowerDamage += extraTowerDamage;
+ MonsterManager.instance.extraGoldDrop += extraGoldDrop;
+ MonsterManager.instance.manaDropOnDeath += manaDropOnDeath;
+ MonsterManager.instance.speedBonus += speedBonus;
+ MonsterManager.instance.slowCapModifier += slowCapMod;
+ MonsterManager.instance.hasteCapModifier += hasteCapMod;
+ if (extraGoldDrop > 0)
+ {
+ banditObject.SetActive(value: true);
+ banditText.text = "+" + MonsterManager.instance.extraGoldDrop + "g";
+ }
+ if (manaDropOnDeath > 0f)
+ {
+ ResourceManager.instance.UpdateManaHUD();
+ }
+ if ((double)MonsterManager.instance.slowCapModifier >= 0.3)
+ {
+ AchievementManager.instance.UnlockAchievement("MaxSlow");
+ }
+ if (MonsterManager.instance.hasteCapModifier <= -0.6f)
+ {
+ AchievementManager.instance.UnlockAchievement("MaxHaste");
+ }
+ }
+}