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); } } }
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."); } }
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(); } } }