示例#1
0
    /// <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");
        }
    }
示例#2
0
    /// <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;
                }
            }
        }
    }
示例#3
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);
        }
    }