コード例 #1
0
        IEnumerator Evade()
        {
            EvadeEnemySkillTest evadeEnemy = new EvadeEnemySkillTest(ThisCard, evade.IsCancelable);

            yield return(evadeEnemy.RunNow());

            evade.IsCancel = !evadeEnemy.SkillTest.IsComplete ?? false;
        }
コード例 #2
0
        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();
            }
        }