Просмотр исходного кода

Merge pull request #911 from DCGO2/x89rt2-patch-10

At end of turn lose 3 memory
x89rt2 4 месяцев назад
Родитель
Сommit
ffd5b26173

+ 33 - 49
Assets/Scripts/CardEffect/BT1/Blue/BT1_040.cs

@@ -1,74 +1,58 @@
-using System.Collections;
+using System.Collections;
 using System.Collections.Generic;
-using UnityEngine;
 
+// WereGarurumon
 namespace DCGO.CardEffects.BT1
 {
     public class BT1_040 : CEntity_Effect
     {
         public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
         {
-        List<ICardEffect> cardEffects = new List<ICardEffect>();
+            List<ICardEffect> cardEffects = new List<ICardEffect>();
 
-        if (timing == EffectTiming.OnAllyAttack)
-        {
-            ActivateClass activateClass = new ActivateClass();
-            activateClass.SetUpICardEffect("Memory +3", CanUseCondition, card);
-            activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
-            cardEffects.Add(activateClass);
-
-            string EffectDiscription()
-            {
-                return "[When Attacking] Gain 3 memory. At end of turn lose 3 memory.";
-            }
-
-            bool CanUseCondition(Hashtable hashtable)
+            if (timing == EffectTiming.OnAllyAttack)
             {
-                return CardEffectCommons.CanTriggerOnAttack(hashtable, card);
-            }
+                ActivateClass activateClass = new ActivateClass();
+                activateClass.SetUpICardEffect("Memory +3", CanUseCondition, card);
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
+                cardEffects.Add(activateClass);
 
-            bool CanActivateCondition(Hashtable hashtable)
-            {
-                if (CardEffectCommons.IsExistOnBattleArea(card))
+                string EffectDiscription()
                 {
-                    return true;
+                    return "[When Attacking] Gain 3 memory. At end of turn lose 3 memory.";
                 }
 
-                return false;
-            }
+                bool CanUseCondition(Hashtable hashtable)
+                {
+                    return CardEffectCommons.CanTriggerOnAttack(hashtable, card);
+                }
 
-            IEnumerator ActivateCoroutine(Hashtable _hashtable)
-            {
-                yield return ContinuousController.instance.StartCoroutine(card.Owner.AddMemory(3, activateClass));
+                bool CanActivateCondition(Hashtable hashtable)
+                {
+                    return CardEffectCommons.IsExistOnBattleArea(card);
+                }
 
-                    ActivateClass activateClass1 = new ActivateClass();
-                    activateClass1.SetUpICardEffect("Memory -3", CanUseCondition1, card);
-                    activateClass1.SetUpActivateClass(CanActivateCondition1, ActivateCoroutine1, -1, false, EffectDiscription1());
-                    CardEffectCommons.AddEffectToPlayer(effectDuration: EffectDuration.UntilEachTurnEnd, card: card, cardEffect: activateClass1, timing: EffectTiming.OnEndTurn);
+                IEnumerator ActivateCoroutine(Hashtable _hashtable)
+                {
+                    yield return ContinuousController.instance.StartCoroutine(card.Owner.AddMemory(3, activateClass));
 
-                    string EffectDiscription1()
-                    {
-                        return "Lose 3 memory.";
-                    }
+                    card.Owner.UntilEachTurnEndEffects.Add(GetCardEffect);
 
-                    bool CanUseCondition1(Hashtable hashtable)
+                    ICardEffect GetCardEffect(EffectTiming _timing)
                     {
-                        return true;
-                    }
+                        if (_timing == EffectTiming.OnEndTurn)
+                        {
+                            return CardEffectFactory.EoTLose3Memory(card);
+                        }
 
-                    bool CanActivateCondition1(Hashtable hashtable)
-                    {
-                        return true;
+                        return null;
                     }
 
-                    IEnumerator ActivateCoroutine1(Hashtable _hashtable1)
-                    {
-                        yield return ContinuousController.instance.StartCoroutine(card.Owner.AddMemory(-3, activateClass1));
-                    }
+                    yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().CreateBuffEffect(card.PermanentOfThisCard()));
                 }
-        }
+            }
 
-        return cardEffects;
-    }
+            return cardEffects;
+        }
     }
-}
+}

+ 11 - 32
Assets/Scripts/CardEffect/BT1/Red/BT1_021.cs

@@ -1,10 +1,5 @@
 using System.Collections;
 using System.Collections.Generic;
-using UnityEngine;
-using System.Linq;
-using Photon;
-using System;
-using Photon.Pun;
 
 public class BT1_021 : CEntity_Effect
 {
@@ -31,42 +26,26 @@ public class BT1_021 : CEntity_Effect
 
             bool CanActivateCondition(Hashtable hashtable)
             {
-                if (CardEffectCommons.IsExistOnBattleArea(card))
-                {
-                    return true;
-                }
-
-                return false;
+                return CardEffectCommons.IsExistOnBattleArea(card);
             }
 
             IEnumerator ActivateCoroutine(Hashtable _hashtable)
             {
                 yield return ContinuousController.instance.StartCoroutine(card.Owner.AddMemory(3, activateClass));
 
-                        ActivateClass activateClass1 = new ActivateClass();
-                        activateClass1.SetUpICardEffect("Memory -3", CanUseCondition1, card);
-                        activateClass1.SetUpActivateClass(CanActivateCondition1, ActivateCoroutine1, -1, false, EffectDiscription1());
-                        CardEffectCommons.AddEffectToPlayer(effectDuration: EffectDuration.UntilEachTurnEnd, card: card, cardEffect: activateClass1, timing: EffectTiming.OnEndTurn);
+                card.Owner.UntilEachTurnEndEffects.Add(GetCardEffect);
 
-                        string EffectDiscription1()
-                        {
-                            return "Lose 3 memory.";
-                        }
-
-                        bool CanUseCondition1(Hashtable hashtable)
-                        {
-                            return true;
-                        }
+                ICardEffect GetCardEffect(EffectTiming _timing)
+                {
+                    if (_timing == EffectTiming.OnEndTurn)
+                    {
+                        return CardEffectFactory.EoTLose3Memory(card);
+                    }
 
-                        bool CanActivateCondition1(Hashtable hashtable)
-                        {
-                            return true;
-                        }
+                    return null;
+                }
 
-                        IEnumerator ActivateCoroutine1(Hashtable _hashtable1)
-                        {
-                            yield return ContinuousController.instance.StartCoroutine(card.Owner.AddMemory(-3, activateClass1));
-                        }
+                yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().CreateBuffEffect(card.PermanentOfThisCard()));
             }
         }
 

+ 30 - 0
Assets/Scripts/Script/CardEffectFactory.cs

@@ -1432,4 +1432,34 @@ public partial class CardEffectFactory
     }
 
     #endregion
+
+    #region At end of turn lose 3 memory
+    public static ActivateClass EoTLose3Memory(CardSource card)
+    {
+        ActivateClass activateClass1 = new ActivateClass();
+        activateClass1.SetUpICardEffect("Memory -3", CanUseCondition1, card);
+        activateClass1.SetUpActivateClass(CanActivateCondition1, ActivateCoroutine1, -1, false, EffectDiscription1());
+        return activateClass1;
+
+        string EffectDiscription1()
+        {
+            return "Lose 3 memory.";
+        }
+
+        bool CanUseCondition1(Hashtable hashtable)
+        {
+            return true;
+        }
+
+        bool CanActivateCondition1(Hashtable hashtable)
+        {
+            return true;
+        }
+
+        IEnumerator ActivateCoroutine1(Hashtable _hashtable1)
+        {
+            yield return ContinuousController.instance.StartCoroutine(card.Owner.AddMemory(-3, activateClass1));
+        }
+    }
+    #endregion
 }

+ 1 - 1
Assets/Scripts/Script/PermanentEffectFactory.cs

@@ -97,4 +97,4 @@ public partial class PermanentEffectFactory
         }
     }
     #endregion
-}
+}