Beispiel #1
0
 public void ReturnToHand()
 {
     if (HasStatusEffect(StatusEffects.Transformed))
     {
         ReturnToOriginalForm();
         OriginalTransformForm.ReturnToHand();
     }
     else if (HasKeyword(Keywords.Token))
     {
         RemoveUnit(true);
     }
     else
     {
         if (IsHero)
         {
             Redeploy();
         }
         else
         {
             RemoveUnit();
             InitCard(CardData, Owner);
             Owner.AddToHand(this);
         }
     }
 }
Beispiel #2
0
    public void ReturnToOriginalForm()
    {
        if (HasStatusEffect(StatusEffects.Transformed))
        {
            var currentCell = UnitCounter.Cell;
            RemoveUnit();
            GameManager.instance.effectManager.CreateUnitCounter(OriginalTransformForm, currentCell);

            OriginalTransformForm.ReturnToOriginalFromActionReset();

            if (OriginalTransformForm.IsHero)
            {
                GameManager.instance.uiManager.RefreshHeroStats(Owner.Id, OriginalTransformForm);
            }

            if (Owner.HasSpecialPassive(SpecialPassiveEffects.ShapeshiftersMask, out Passive shapeshiftersMaskPassive))
            {
                OriginalTransformForm.HealUnit(shapeshiftersMaskPassive.SpecialPassiveProperty);
            }
        }
        else
        {
            throw new Exception("Cannot return a non-transformed unit to its original form.");
        }
    }
Beispiel #3
0
    public void Spellbind()
    {
        if (HasStatusEffect(StatusEffects.Transformed))
        {
            ReturnToOriginalForm();
            OriginalTransformForm.Spellbind();
        }
        else
        {
            if (HasKeyword(Keywords.Summon))
            {
                RemoveUnit(true);
            }
            else
            {
                foreach (var enchantment in Enchantments)
                {
                    if (enchantment.Enchantment.Status != UnitEnchantment.EnchantmentStatus.Passive)
                    {
                        enchantment.IsActive = false;
                    }
                }

                UpdateOwnerStats(false);
                ConfiscatedCards.Clear();
                ImprisonedUnits.Clear();
                CurrentStatusEffects.Clear();
                CurrentStatusEffects.Add(StatusEffects.Spellbound);
                UpdateEnchantments();
            }
        }
    }