x89rt2 2 месяцев назад
Родитель
Сommit
25e00ab5af

+ 1 - 55
Assets/Scripts/Script/CardEffectCommons/KeyWordEffects/Engage.cs

@@ -25,8 +25,6 @@ public partial class CardEffectCommons
                 defenderCondition: (permanent) => true,
                 cardEffect: activateClass);
 
-            selectAttackEffect.SetBeforeOnAttackCoroutine(beforeOnAttackCoroutine);
-
             yield return ContinuousController.instance.StartCoroutine(selectAttackEffect.Activate());
         }
     }
@@ -48,7 +46,7 @@ public partial class CardEffectCommons
                 && !targetPermanent.TopCard.CanNotBeAffected(activateClass);
         }
 
-        ActivateClass engage = CardEffectCommons.EngageEffect(
+        ActivateClass engage = CardEffectFactory.EngageEffect(
             targetPermanent: targetPermanent,
             isInheritedEffect: false,
             condition: CanUseCondition,
@@ -68,56 +66,4 @@ public partial class CardEffectCommons
         }
     }
     #endregion
-
-    #region Trigger effect of [Engage]
-    public static ActivateClass EngageEffect(
-        Permanent targetPermanent,
-        bool isInheritedEffect,
-        Func<bool> condition,
-        ICardEffect rootCardEffect,
-        CardSource card,
-        Func<IEnumerator> beforeOnAttackCoroutine = null)
-    {
-        if (targetPermanent == null) return null;
-        if (targetPermanent.TopCard == null) return null;
-        if (card == null) return null;
-
-        ActivateClass activateClass = new ActivateClass();
-        activateClass.SetUpICardEffect("Engage", CanUseCondition, card);
-        activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDescription());
-        activateClass.SetIsInheritedEffect(isInheritedEffect);
-
-        string EffectDescription()
-        {
-            return $"{DataBase.EngageEffectDescription()}";
-        }
-
-        if (rootCardEffect != null)
-        {
-            activateClass.SetIsInheritedEffect(false);
-            activateClass.SetEffectSourcePermanent(targetPermanent);
-            activateClass.SetRootCardEffect(rootCardEffect);
-        }
-
-        bool CanUseCondition(Hashtable hashtable)
-        {
-            return CardEffectCommons.IsOwnerTurn(card);
-        }
-
-        bool CanActivateCondition(Hashtable hashtable)
-        {
-            return CardEffectCommons.CanActivateEngage(targetPermanent.TopCard, activateClass)
-                && (condition == null
-                    || condition());
-        }
-
-        IEnumerator ActivateCoroutine(Hashtable _hashtable)
-        {
-            return CardEffectCommons.EngageProcess(targetPermanent.TopCard, activateClass, beforeOnAttackCoroutine);
-        }
-
-        return activateClass;
-    }
-    #endregion
-
 }

+ 58 - 0
Assets/Scripts/Script/CardEffectFactory/KeyWordEffects/Engage.cs

@@ -0,0 +1,58 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+public partial class CardEffectFactory
+{
+    #region Trigger effect of [Engage]
+    public static ActivateClass EngageEffect(
+        Permanent targetPermanent,
+        bool isInheritedEffect,
+        Func<bool> condition,
+        ICardEffect rootCardEffect,
+        CardSource card,
+        Func<IEnumerator> beforeOnAttackCoroutine = null)
+    {
+        if (targetPermanent == null) return null;
+        if (targetPermanent.TopCard == null) return null;
+        if (card == null) return null;
+
+        ActivateClass activateClass = new ActivateClass();
+        activateClass.SetUpICardEffect("Engage", CanUseCondition, card);
+        activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDescription());
+        activateClass.SetIsInheritedEffect(isInheritedEffect);
+
+        string EffectDescription()
+        {
+            return $"{DataBase.EngageEffectDescription()}";
+        }
+
+        if (rootCardEffect != null)
+        {
+            activateClass.SetIsInheritedEffect(false);
+            activateClass.SetEffectSourcePermanent(targetPermanent);
+            activateClass.SetRootCardEffect(rootCardEffect);
+        }
+
+        bool CanUseCondition(Hashtable hashtable)
+        {
+            return CardEffectCommons.IsOwnerTurn(card)
+                && CardEffectCommons.IsPermanentExistsOnBattleAreaDigimon(targetPermanent);
+        }
+
+        bool CanActivateCondition(Hashtable hashtable)
+        {
+            return CardEffectCommons.CanActivateEngage(targetPermanent.TopCard, activateClass)
+                && (condition == null
+                    || condition());
+        }
+
+        IEnumerator ActivateCoroutine(Hashtable _hashtable)
+        {
+            return CardEffectCommons.EngageProcess(targetPermanent.TopCard, activateClass, beforeOnAttackCoroutine);
+        }
+
+        return activateClass;
+    }
+    #endregion
+}

+ 11 - 0
Assets/Scripts/Script/CardEffectFactory/KeyWordEffects/Engage.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 05ce0f148ee273544bd40e5ea5a7386a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: