public void InitEnchantmentObject(AppliedEnchantment _enchantment, Unit _unit, UnitCommandUI _unitCommandUI)
    {
        unit          = _unit;
        enchantment   = _enchantment;
        unitCommandUI = _unitCommandUI;

        var activeText = !_enchantment.IsActive ? "- Spellbound" : "";

        sourceText.text      = $"{_enchantment.Enchantment.Source}{activeText}";
        descriptionText.text = _enchantment.Enchantment.DescriptionText();

        var unRemoveableEnchantments = new List <UnitEnchantment.EnchantmentStatus>()
        {
            UnitEnchantment.EnchantmentStatus.OverloadPassive,
            UnitEnchantment.EnchantmentStatus.Passive,
        };

        deleteButton.interactable = !unRemoveableEnchantments.Contains(enchantment.Enchantment.Status);
    }
示例#2
0
 public void DeleteEnchantment(AppliedEnchantment enchantment)
 {
     Enchantments.Remove(enchantment);
     CurrentStatusEffects.RemoveAll(x => enchantment.Enchantment.StatusEffects.Contains(x));
     UpdateEnchantments();
 }
示例#3
0
    public void AddEnchantment(UnitEnchantment enchantment)
    {
        if (enchantment.ValidEnchantment)
        {
            var newEnchantment = new AppliedEnchantment()
            {
                Enchantment = enchantment
            };
            if (newEnchantment.Enchantment.Keywords.Contains(Keywords.Flying))
            {
                if (!HasStatusEffect(StatusEffects.Airborne))
                {
                    newEnchantment.Enchantment.StatusEffects.Add(StatusEffects.Airborne);
                    if (Status != UnitStatuses.Preparing)
                    {
                        CanFlyOrLand = true;
                    }
                }
            }
            if (newEnchantment.Enchantment.Keywords.Contains(Keywords.Stealth))
            {
                newEnchantment.Enchantment.StatusEffects.Add(StatusEffects.Stealthed);
            }

            if (Status != UnitStatuses.Preparing && Status != UnitStatuses.None)
            {
                if (newEnchantment.Enchantment.Keywords.Contains(Keywords.SpecialSwiftstrike))
                {
                    if (!HasKeyword(Keywords.Swiftstrike) && !HasKeyword(Keywords.SpecialSwiftstrike))
                    {
                        ModifyActions(2);
                    }
                    else if (HasKeyword(Keywords.Swiftstrike))
                    {
                        ModifyActions(1);
                    }
                }
                else if (newEnchantment.Enchantment.Keywords.Contains(Keywords.Swiftstrike))
                {
                    if (!HasKeyword(Keywords.Swiftstrike) && !HasKeyword(Keywords.SpecialSwiftstrike))
                    {
                        ModifyActions(1);
                    }
                }
            }

            Enchantments.Add(newEnchantment);
            UpdateEnchantments();

            if (HasKeyword(Keywords.Prepared) && (Status == UnitStatuses.Preparing || Status == UnitStatuses.None))
            {
                RefreshActions();
            }

            RefreshCounter();
        }
        else
        {
            throw new Exception("Enchantment is not valid to add to unit");
        }
    }