IEnumerator Evade() { EvadeEnemySkillTest evadeEnemy = new EvadeEnemySkillTest(ThisCard, evade.IsCancelable); yield return(evadeEnemy.RunNow()); evade.IsCancel = !evadeEnemy.SkillTest.IsComplete ?? false; }
protected override IEnumerator LogicEffect() { List <CardEffect> listCardEffects = new List <CardEffect>(); foreach (CardComponent enemy in ThisCard.VisualOwner.Threat.ListCards.FindAll(c => c.CardType == CardType.Enemy)) { listCardEffects.Add(new CardEffect( card: enemy, effect: () => Evade(enemy), animationEffect: ((CardEnemy)enemy.CardLogic).BadEffectForEnemyAnimation, type: EffectType.Choose, name: ThisCard.Info.Name + " a " + enemy.Info.Name, investigatorImageCardInfoOwner: ThisCard.VisualOwner)); } yield return(new ChooseCardAction(listCardEffects, cancelableCardEffect: ref playFromHand).RunNow()); IEnumerator Evade(CardComponent enemy) { effectToExecuteIOnlyOne = true; EvadeEnemySkillTest evadeEnemy = new EvadeEnemySkillTest(enemy, playFromHand.IsCancelable); thisSkillTest = evadeEnemy.SkillTest; evadeEnemy.SkillTest.SkillType = Skill.Willpower; evadeEnemy.SkillTest.ExtraCard = ThisCard; evadeEnemy.SkillTest.WinEffect.Add(new CardEffect( card: ThisCard, effect: DoDamage, animationEffect: DoDamageAnimation, type: EffectType.Choose, name: "Hacer daño", investigatorImageCardInfoOwner: ThisCard.VisualOwner)); yield return(evadeEnemy.RunNow()); playFromHand.IsCancel = !evadeEnemy.SkillTest.IsComplete ?? false; IEnumerator DoDamageAnimation() => new AnimationCardAction(ThisCard, audioClip: ThisCard.Effect3).RunNow(); IEnumerator DoDamage() => new DamageEnemyAction(enemy, DamageToEnemy).RunNow(); } }