示例#1
0
    public void CheckUnleash(int targetAttack, int targetHealth)
    {
        if (HasKeyword(Keywords.Unleash))
        {
            var unleashEnchantment = new UnitEnchantment()
            {
                Source = "Unleash",
                Status = UnitEnchantment.EnchantmentStatus.Permanent,
            };

            var modifier = Owner.HasSpecialPassive(SpecialPassiveEffects.FeralNature) ? 2 : 1;
            unleashEnchantment.AddStatModifier(StatTypes.Attack, StatModifierTypes.Modify, targetAttack * modifier);
            unleashEnchantment.AddStatModifier(StatTypes.MaxHealth, StatModifierTypes.Modify, targetHealth * modifier);

            AddEnchantment(unleashEnchantment);
        }
    }
示例#2
0
    public override void InitCard(CardData _cardData, Player owner)
    {
        base.InitCard(_cardData, owner);

        ResetStats(true);
        AbilityInit();

        Status                  = UnitStatuses.None;
        CurrentHealth           = GetStat(StatTypes.MaxHealth);
        RemainingSpeed          = 0;
        TemporaryMindControlled = false;
        LoseNextAction          = false;

        ConfiscatedCards = new List <Card>();
        ImprisonedUnits  = new List <Unit>();

        SpymasterLurenCards = new List <Card>();

        if (GameManager.instance.CurrentGamePhase != GameManager.GamePhases.Menu)
        {
            Enchantments         = new List <AppliedEnchantment>();
            CurrentStatusEffects = new List <StatusEffects>();
            CurrentKeywords      = new List <Keywords>();

            if (BaseKeywords.Count > 0 || UnitData.Empowered > 0)
            {
                var keywordEnchantment = new UnitEnchantment()
                {
                    Source = "Base Keywords",
                    Status = UnitEnchantment.EnchantmentStatus.Base,
                };
                keywordEnchantment.Keywords = BaseKeywords.ToList();
                if (UnitData.Empowered > 0)
                {
                    keywordEnchantment.AddStatModifier(StatTypes.Empowered, StatModifierTypes.Modify, UnitData.Empowered);
                }

                AddEnchantment(keywordEnchantment);
            }

            if (Owner != null)
            {
                foreach (var passive in Owner.Passives)
                {
                    if (passive.Enchantment != null)
                    {
                        if (passive.PassiveApplies(this))
                        {
                            AddEnchantment(passive.Enchantment);
                        }
                    }
                }
            }
        }
    }
示例#3
0
    /// <summary>
    ///
    /// Adds the stat modifier to the enchantment for a particular stat type dropdown and an input
    ///
    /// </summary>
    private void GetStatModifier(UnitEnchantment enchantment, Unit.StatTypes statType, TMP_Dropdown statModTypeDropdown, TMP_InputField statValueInput)
    {
        var statModType = (StatModifierTypes)Enum.Parse(typeof(StatModifierTypes), statModTypeDropdown.captionText.text);

        if (statModType != StatModifierTypes.None)
        {
            if (string.IsNullOrWhiteSpace(statValueInput.text))
            {
                statValueInput.text = "0";
            }
            var statValue = int.Parse(statValueInput.text);

            enchantment.AddStatModifier(statType, statModType, statValue);
        }
    }