/// <summary> /// /// Removes an upgrade from the deck /// /// </summary> public void RemoveUpgrade(UpgradeData upgradeData) { if (UpgradeIdList.Contains(upgradeData.Id.Value)) { UpgradeList.Remove(upgradeData); UpgradeIdList.Remove(upgradeData.Id.Value); if (upgradeData.UpgradeTag == UpgradeTags.DeathDefiant) { DeathDefiant = false; } } else { throw new Exception($"Upgrade {upgradeData.Id} does not exist in the deck"); } }
/// <summary> /// /// Adds an upgrade to the deck /// /// </summary> public void AddUpgrade(UpgradeData upgradeData, bool trackAddition = true) { UpgradeList.Add(upgradeData); UpgradeIdList.Add(upgradeData.Id.Value); GameManager.instance.upgradeManager.UpdateUpgradeEffect(upgradeData, this); if (IsCampaign) { if (trackAddition) { CampaignTracker.HonourPoints -= upgradeData.GetHonourPointsCost(CampaignTracker.CompletedSinceTierUpgrade); if (upgradeData.IsTierLevel) { CampaignTracker.CompletedSinceTierUpgrade = 0; } } } }
/// <summary> /// /// Function for updating the tier level of the hero card /// /// </summary> public void UpdateHeroCard(TierLevel heroTier, TierLevel abilityTier) { HeroTier = heroTier; AbilityTier = abilityTier; HeroCard = GameManager.instance.libraryManager.GetHero(DeckClass, heroTier, abilityTier); //Add the hero upgrades. Loops between tier 1 and the selected Hero Tier for (int tierIndex = (int)TierLevel.Tier1; tierIndex <= (int)heroTier; tierIndex++) { var heroUpgrade = GameManager.instance.upgradeManager.GetUpgrade(UpgradeTags.HeroUpgrade, (TierLevel)tierIndex); UpgradeList.Add(heroUpgrade); UpgradeIdList.Add(heroUpgrade.Id.Value); } //Add the hero ability upgrades. Loops between tier 1 and the selected Hero Tier for (int tierIndex = (int)TierLevel.Tier1; tierIndex <= (int)abilityTier; tierIndex++) { var abilityUpgrade = GameManager.instance.upgradeManager.GetUpgrade(UpgradeTags.AbilityUpgrade, (TierLevel)tierIndex); UpgradeList.Add(abilityUpgrade); UpgradeIdList.Add(abilityUpgrade.Id.Value); } }