| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- using System.Collections;
- using System.Collections.Generic;
- using System;
- using System.Linq;
- using UnityEngine;
- public partial class CardEffectCommons
- {
- #region Can activate [Collision]
- public static bool CanActivateCollision(CardSource cardSource)
- {
- if (IsExistOnBattleArea(cardSource))
- {
- if (cardSource.Owner.Enemy.GetBattleAreaDigimons().Count >= 1)
- {
- if (GManager.instance.attackProcess.IsAttacking)
- {
- return true;
- }
- }
- }
- return false;
- }
- #endregion
- #region Effect process of [Collision]
- public static IEnumerator CollisionProcess(CardSource cardSource, ICardEffect activateClass, Func<IEnumerator> beforeOnAttackCoroutine = null)
- {
- List<Permanent> enemyDigimons = new List<Permanent>();
- if (CanActivateCollision(cardSource))
- {
- foreach (Permanent enemyDigimon in cardSource.Owner.Enemy.GetBattleAreaDigimons())
- {
- if (enemyDigimon.TopCard.CanNotBeAffected(activateClass))
- continue;
- yield return ContinuousController.instance.StartCoroutine(GainBlocker(
- targetPermanent: enemyDigimon,
- effectDuration: EffectDuration.UntilEndAttack,
- activateClass: activateClass));
- GManager.instance.attackProcess.IsBlocking = true;
- }
- /*int maxCount = 1;
- Permanent selectedPermanent = null;
- SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
- selectPermanentEffect.SetUp(
- selectPlayer: cardSource.Owner.Enemy,
- canTargetCondition: CanSelectBlockerCondition,
- canTargetCondition_ByPreSelecetedList: null,
- canEndSelectCondition: null,
- maxCount: maxCount,
- canNoSelect: false,
- canEndNotMax: false,
- selectPermanentCoroutine: SelectPermanentCoroutine,
- afterSelectPermanentCoroutine: null,
- mode: SelectPermanentEffect.Mode.Custom,
- cardEffect: activateClass);
- selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon that will block.", "The opponent is selecting 1 Digimon that will block.");
- yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
- bool CanSelectBlockerCondition(Permanent permanent)
- {
- if (CardEffectCommons.IsPermanentExistsOnBattleArea(permanent))
- {
- if (!permanent.TopCard.Owner.isYou)
- {
- if (permanent.HasBlocker && permanent.CanBlock(cardSource.PermanentOfThisCard()))
- {
- return true;
- }
- }
- }
- return false;
- }
- IEnumerator SelectPermanentCoroutine(Permanent permanent)
- {
- selectedPermanent = permanent;
- yield return ContinuousController.instance.StartCoroutine(GManager.instance.attackProcess.SwitchDefender(null, true, selectedPermanent));
- }*/
- }
- }
- #endregion
- }
|