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

remaining EX9 fixes, patch notes button

mbunch_kascope 1 год назад
Родитель
Сommit
94b146b309

+ 1 - 1
Assets/CardBaseEntity/EX9/Green/Digimon/EX9_039.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:5581176b132c1ded0bcbf9a5baab6091edc0e39419b7f719ffaec31c63d3a6d9
+oid sha256:c83729b62d9b6fe97bc75c240393e82857a3ddd891865ea0a04952411a184286
 size 1535

+ 1 - 1
Assets/CardBaseEntity/EX9/Green/Digimon/EX9_039_P1.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:122da7e33fb639f3221914f40b424d7be4c28139bf2ff23491906f63fd8c9e5f
+oid sha256:a5dd3c88f8c2c1d9f951d72cb7386d2a2192f1bff5ec2131e42f12133e5e75d2
 size 1541

+ 1 - 34
Assets/CardEffect/EX9/Black/EX9_049.cs

@@ -64,38 +64,6 @@ namespace DCGO.CardEffects.EX9
                     return false;
                 }
 
-                bool CanSelectPermanentHandCondition(Permanent permanent)
-                {
-                    foreach (CardSource cardSource in card.Owner.HandCards)
-                    {
-                        if (cardSource.EqualsTraits("Ver.3"))
-                        {
-                            if (cardSource.CanPlayCardTargetFrame(card.PermanentOfThisCard().PermanentFrame, false, activateClass))
-                            {
-                                return true;
-                            }
-                        }
-                    }
-
-                    return false;
-                }
-
-                bool CanSelectPermanentTrashCondition(Permanent permanent)
-                {
-                    foreach (CardSource cardSource in card.Owner.TrashCards)
-                    {
-                        if (cardSource.EqualsTraits("Ver.3"))
-                        {
-                            if (cardSource.CanPlayCardTargetFrame(card.PermanentOfThisCard().PermanentFrame, false, activateClass))
-                            {
-                                return true;
-                            }
-                        }
-                    }
-
-                    return false;
-                }
-
                 bool ValidDigivolveIntoHand(CardSource source)
                 {
                     return source.EqualsTraits("Ver.3");
@@ -165,8 +133,7 @@ namespace DCGO.CardEffects.EX9
                             foreach (var selectedCard in selectedCards)
                             {
                                 yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddExecutingCard(selectedCard));
-                                selectedCard.SetReverse();
-                                yield return ContinuousController.instance.StartCoroutine(card.PermanentOfThisCard().AddDigivolutionCardsBottom(new List<CardSource>() { selectedCard }, activateClass));
+                                yield return ContinuousController.instance.StartCoroutine(card.PermanentOfThisCard().AddDigivolutionCardsBottom(new List<CardSource>() { selectedCard }, activateClass, isFacedown: true));
                             }
 
                             bool canSelectHand = CardEffectCommons.HasMatchConditionOwnersHand(card, CanSelectCardCondition1);

+ 1 - 2
Assets/CardEffect/EX9/Black/EX9_050.cs

@@ -104,8 +104,7 @@ namespace DCGO.CardEffects.EX9
                         foreach (var selectedCard in selectedCards)
                         {
                             yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddExecutingCard(selectedCard));
-                            selectedCard.SetReverse();
-                            yield return ContinuousController.instance.StartCoroutine(card.PermanentOfThisCard().AddDigivolutionCardsBottom(new List<CardSource>() { selectedCard }, activateClass));
+                            yield return ContinuousController.instance.StartCoroutine(card.PermanentOfThisCard().AddDigivolutionCardsBottom(new List<CardSource>() { selectedCard }, activateClass, isFacedown: true));
                         }
 
                         bool canSelectHand = CardEffectCommons.HasMatchConditionOwnersHand(card, CanSelectEvoCondition);

+ 2 - 2
Assets/CardEffect/EX9/Black/EX9_051.cs

@@ -78,12 +78,12 @@ namespace DCGO.CardEffects.EX9
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
-                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
+                    return CardEffectCommons.CanTriggerOnAttack(hashtable, card); 
                 }
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    return CardEffectCommons.CanTriggerOnAttack(hashtable, card);
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
             }
 

+ 28 - 33
Assets/CardEffect/EX9/Blue/EX9_019.cs

@@ -358,50 +358,45 @@ namespace DCGO.CardEffects.EX9
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
-                    {
-                        if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
-                        {
-                            return true;
-                        }
-                    }
-
-                    return false;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable _hashtable)
                 {
-                    Permanent selectedPermanent = null;
+                    if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
+                    {
+                        Permanent selectedPermanent = null;
 
-                    SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
+                        SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
 
-                    selectPermanentEffect.SetUp(
-                        selectPlayer: card.Owner,
-                        canTargetCondition_ByPreSelecetedList: null,
-                        canTargetCondition: CanSelectPermanentCondition,
-                        canEndSelectCondition: null,
-                        maxCount: 1,
-                        canNoSelect: false,
-                        canEndNotMax: false,
-                        selectPermanentCoroutine: SelectPermanentCoroutine,
-                        afterSelectPermanentCoroutine: null,
-                        mode: SelectPermanentEffect.Mode.Custom,
-                        cardEffect: activateClass);
+                        selectPermanentEffect.SetUp(
+                            selectPlayer: card.Owner,
+                            canTargetCondition_ByPreSelecetedList: null,
+                            canTargetCondition: CanSelectPermanentCondition,
+                            canEndSelectCondition: null,
+                            maxCount: 1,
+                            canNoSelect: false,
+                            canEndNotMax: false,
+                            selectPermanentCoroutine: SelectPermanentCoroutine,
+                            afterSelectPermanentCoroutine: null,
+                            mode: SelectPermanentEffect.Mode.Custom,
+                            cardEffect: activateClass);
 
-                    selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon to De-Digivolve.",
-                        "The opponent is selecting 1 Digimon to De-Digivolve.");
+                        selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon to De-Digivolve.",
+                            "The opponent is selecting 1 Digimon to De-Digivolve.");
 
-                    yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
+                        yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
 
-                    IEnumerator SelectPermanentCoroutine(Permanent permanent)
-                    {
-                        selectedPermanent = permanent;
+                        IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                        {
+                            selectedPermanent = permanent;
 
-                        yield return null;
-                    }
+                            yield return null;
+                        }
 
-                    if (selectedPermanent != null)
-                        yield return ContinuousController.instance.StartCoroutine(new IDegeneration(selectedPermanent, 1, activateClass).Degeneration());
+                        if (selectedPermanent != null)
+                            yield return ContinuousController.instance.StartCoroutine(new IDegeneration(selectedPermanent, 1, activateClass).Degeneration());
+                    }
                 }
             }
 

+ 24 - 12
Assets/CardEffect/EX9/Green/EX9_037.cs

@@ -138,12 +138,18 @@ namespace DCGO.CardEffects.EX9
                                 if (selectedPermanent != null && !selectedPermanent.TopCard.CanNotBeAffected(activateClass))
                                 {
                                     yield return ContinuousController.instance.StartCoroutine(new SuspendPermanentsClass(new List<Permanent>() { selectedPermanent }, hashtable).Tap());
-                                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainCanNotUnsuspend(
-                                    targetPermanent: selectedPermanent,
-                                    effectDuration: EffectDuration.UntilOwnerActivePhase,
-                                    activateClass: activateClass,
-                                    condition: null,
-                                    effectName: "Your Digimon can't unsuspend"));
+
+                                    bool PermanentCondition(Permanent permanent)
+                                    {
+                                        return permanent == selectedPermanent;
+                                    }
+
+                                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainCanNotUnsuspendPlayerEffect(
+                                        permanentCondition: PermanentCondition,
+                                        effectDuration: EffectDuration.UntilOwnerActivePhase,
+                                        activateClass: activateClass,
+                                        isOnlyActivePhase: true,
+                                        effectName: "Your Digimon can't unsuspend"));
                                 }
                             }
                         }
@@ -250,12 +256,18 @@ namespace DCGO.CardEffects.EX9
                                 if (selectedPermanent != null && !selectedPermanent.TopCard.CanNotBeAffected(activateClass))
                                 {
                                     yield return ContinuousController.instance.StartCoroutine(new SuspendPermanentsClass(new List<Permanent>() { selectedPermanent }, hashtable).Tap());
-                                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainCanNotUnsuspend(
-                                    targetPermanent: selectedPermanent,
-                                    effectDuration: EffectDuration.UntilOwnerActivePhase,
-                                    activateClass: activateClass,
-                                    condition: null,
-                                    effectName: "Your Digimon can't unsuspend"));
+
+                                    bool PermanentCondition(Permanent permanent)
+                                    {
+                                        return permanent == selectedPermanent;
+                                    }
+
+                                    yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainCanNotUnsuspendPlayerEffect(
+                                        permanentCondition: PermanentCondition,
+                                        effectDuration: EffectDuration.UntilOwnerActivePhase,
+                                        activateClass: activateClass,
+                                        isOnlyActivePhase: true,
+                                        effectName: "Your Digimon can't unsuspend"));
                                 }
                             }
                         }

+ 24 - 12
Assets/CardEffect/EX9/Green/EX9_038.cs

@@ -136,12 +136,18 @@ namespace DCGO.CardEffects.EX9
                             if (selectedPermanent != null && !selectedPermanent.TopCard.CanNotBeAffected(activateClass))
                             {
                                 yield return ContinuousController.instance.StartCoroutine(new SuspendPermanentsClass(new List<Permanent>() { selectedPermanent }, hashtable).Tap());
-                                yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainCanNotUnsuspend(
-                                targetPermanent: selectedPermanent,
-                                effectDuration: EffectDuration.UntilOwnerActivePhase,
-                                activateClass: activateClass,
-                                condition: null,
-                                effectName: "Your Digimon can't unsuspend"));
+
+                                bool PermanentCondition(Permanent permanent)
+                                {
+                                    return permanent == selectedPermanent;
+                                }
+
+                                yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainCanNotUnsuspendPlayerEffect(
+                                    permanentCondition: PermanentCondition,
+                                    effectDuration: EffectDuration.UntilOwnerActivePhase,
+                                    activateClass: activateClass,
+                                    isOnlyActivePhase: true,
+                                    effectName: "Your Digimon can't unsuspend"));
                             }
                         }
                     }
@@ -245,12 +251,18 @@ namespace DCGO.CardEffects.EX9
                             if (selectedPermanent != null && !selectedPermanent.TopCard.CanNotBeAffected(activateClass))
                             {
                                 yield return ContinuousController.instance.StartCoroutine(new SuspendPermanentsClass(new List<Permanent>() { selectedPermanent }, hashtable).Tap());
-                                yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainCanNotUnsuspend(
-                                targetPermanent: selectedPermanent,
-                                effectDuration: EffectDuration.UntilOwnerActivePhase,
-                                activateClass: activateClass,
-                                condition: null,
-                                effectName: "Your Digimon can't unsuspend"));
+
+                                bool PermanentCondition(Permanent permanent)
+                                {
+                                    return permanent == selectedPermanent;
+                                }
+
+                                yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.GainCanNotUnsuspendPlayerEffect(
+                                    permanentCondition: PermanentCondition,
+                                    effectDuration: EffectDuration.UntilOwnerActivePhase,
+                                    activateClass: activateClass,
+                                    isOnlyActivePhase: true,
+                                    effectName: "Your Digimon can't unsuspend"));
                             }
                         }
                     }

+ 5 - 4
Assets/CardEffect/EX9/Green/EX9_039.cs

@@ -36,7 +36,7 @@ namespace DCGO.CardEffects.EX9
 
             if (timing == EffectTiming.OnDeclaration)
             {
-                // To be implemented
+                cardEffects.Add(CardEffectFactory.TrainingEffect(card: card));
             }
 
             #endregion
@@ -62,7 +62,7 @@ namespace DCGO.CardEffects.EX9
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card) && card.Owner.HandCards.Count >= 1;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
 
                 bool CanSelectPermanentCondition(Permanent permanent)
@@ -221,7 +221,7 @@ namespace DCGO.CardEffects.EX9
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card) && card.Owner.HandCards.Count >= 1;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
                 }
 
                 bool CanSelectPermanentCondition(Permanent permanent)
@@ -248,12 +248,13 @@ namespace DCGO.CardEffects.EX9
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
                     CardSource selectedCard = null;
+
                     int maxCount = Math.Min(1, card.Owner.HandCards.Count);
                     SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
 
                     selectHandEffect.SetUp(
                         selectPlayer: card.Owner,
-                        canTargetCondition: null,
+                        canTargetCondition: _ => true,
                         canTargetCondition_ByPreSelecetedList: null,
                         canEndSelectCondition: null,
                         maxCount: maxCount,

+ 30 - 19
Assets/CardEffect/EX9/Purple/EX9_059.cs

@@ -57,7 +57,8 @@ namespace DCGO.CardEffects.EX9
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card) &&
+                           card.Owner.HandCards.Count > 0;
                 }
 
                 bool CanSelectPermanentCondition(Permanent permanent)
@@ -66,18 +67,22 @@ namespace DCGO.CardEffects.EX9
                         permanent.Level <= 4;
                 }
 
+                bool SelectCardCondition(CardSource source)
+                {
+                    return true;
+                }
+
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
                     CardSource selectedCard = null;
-                    int maxCount = Math.Min(1, card.Owner.HandCards.Count);
 
                     SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
                     selectHandEffect.SetUp(
                         selectPlayer: card.Owner,
-                        canTargetCondition: null,
+                        canTargetCondition: SelectCardCondition,
                         canTargetCondition_ByPreSelecetedList: null,
                         canEndSelectCondition: null,
-                        maxCount: maxCount,
+                        maxCount: 1,
                         canNoSelect: true,
                         canEndNotMax: true,
                         isShowOpponent: true,
@@ -101,8 +106,6 @@ namespace DCGO.CardEffects.EX9
 
                         if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
                         {
-                            int maxCount1 = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectPermanentCondition));
-
                             SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
 
                             selectPermanentEffect.SetUp(
@@ -110,7 +113,7 @@ namespace DCGO.CardEffects.EX9
                                 canTargetCondition: CanSelectPermanentCondition,
                                 canTargetCondition_ByPreSelecetedList: null,
                                 canEndSelectCondition: null,
-                                maxCount: maxCount1,
+                                maxCount: 1,
                                 canNoSelect: false,
                                 canEndNotMax: false,
                                 selectPermanentCoroutine: null,
@@ -144,12 +147,14 @@ namespace DCGO.CardEffects.EX9
 
                 bool CanUseCondition(Hashtable hashtable)
                 {
+                    UnityEngine.Debug.Log($"CAN USE: {CardEffectCommons.CanTriggerOnAttack(hashtable, card)}");
                     return CardEffectCommons.CanTriggerOnAttack(hashtable, card);
                 }
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card) &&
+                           card.Owner.HandCards.Count > 0;
                 }
 
                 bool CanSelectPermanentCondition(Permanent permanent)
@@ -158,18 +163,22 @@ namespace DCGO.CardEffects.EX9
                         permanent.Level <= 4;
                 }
 
+                bool SelectCardCondition(CardSource source)
+                {
+                    return true;
+                }
+
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
                     CardSource selectedCard = null;
-                    int maxCount = Math.Min(1, card.Owner.HandCards.Count);
 
                     SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
                     selectHandEffect.SetUp(
                         selectPlayer: card.Owner,
-                        canTargetCondition: null,
+                        canTargetCondition: SelectCardCondition,
                         canTargetCondition_ByPreSelecetedList: null,
                         canEndSelectCondition: null,
-                        maxCount: maxCount,
+                        maxCount: 1,
                         canNoSelect: true,
                         canEndNotMax: true,
                         isShowOpponent: true,
@@ -193,8 +202,6 @@ namespace DCGO.CardEffects.EX9
 
                         if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
                         {
-                            int maxCount1 = Math.Min(1, CardEffectCommons.MatchConditionPermanentCount(CanSelectPermanentCondition));
-
                             SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
 
                             selectPermanentEffect.SetUp(
@@ -202,7 +209,7 @@ namespace DCGO.CardEffects.EX9
                                 canTargetCondition: CanSelectPermanentCondition,
                                 canTargetCondition_ByPreSelecetedList: null,
                                 canEndSelectCondition: null,
-                                maxCount: maxCount1,
+                                maxCount: 1,
                                 canNoSelect: false,
                                 canEndNotMax: false,
                                 selectPermanentCoroutine: null,
@@ -225,7 +232,7 @@ namespace DCGO.CardEffects.EX9
             {
                 ActivateClass activateClass = new ActivateClass();
                 activateClass.SetUpICardEffect("Draw 1, Trash 1", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, true, EffectDiscription());
+                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false, EffectDiscription());
                 activateClass.SetHashString("EX9_059_ESS");
                 activateClass.SetIsInheritedEffect(true);
                 cardEffects.Add(activateClass);
@@ -242,7 +249,12 @@ namespace DCGO.CardEffects.EX9
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card) && card.Owner.LibraryCards.Count >= 1;
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
+                }
+
+                bool CanSelectCard(CardSource source)
+                {
+                    return true;
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
@@ -250,15 +262,14 @@ namespace DCGO.CardEffects.EX9
                     yield return ContinuousController.instance.StartCoroutine(new DrawClass(card.Owner, 1, activateClass).Draw());
                     if (card.Owner.HandCards.Count >= 1)
                     {
-                        int discardCount = Math.Min(1, card.Owner.HandCards.Count);
                         SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
 
                         selectHandEffect.SetUp(
                             selectPlayer: card.Owner,
-                            canTargetCondition: (cardSource) => true,
+                            canTargetCondition: CanSelectCard,
                             canTargetCondition_ByPreSelecetedList: null,
                             canEndSelectCondition: null,
-                            maxCount: discardCount,
+                            maxCount: 1,
                             canNoSelect: false,
                             canEndNotMax: false,
                             isShowOpponent: true,

+ 2 - 5
Assets/CardEffect/EX9/Purple/EX9_065.cs

@@ -93,12 +93,9 @@ namespace DCGO.CardEffects.EX9
                     {
                         if (cardSource.Owner == card.Owner)
                         {
-                            if (cardSource == cardSource.PermanentOfThisCard().TopCard)
+                            if (PermanentCondition(cardSource.PermanentOfThisCard()))
                             {
-                                if (PermanentCondition(cardSource.PermanentOfThisCard()))
-                                {
-                                    return true;
-                                }
+                                return true;
                             }
                         }
                     }

+ 1 - 2
Assets/CardEffect/EX9/Yellow/EX9_023.cs

@@ -152,8 +152,7 @@ namespace DCGO.CardEffects.EX9
                         if (selectedPermanent != null)
                         {
                             yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddExecutingCard(selectedCard));
-                            selectedCard.SetReverse();
-                            yield return ContinuousController.instance.StartCoroutine(selectedPermanent.AddDigivolutionCardsBottom(new List<CardSource>() { selectedCard }, activateClass));
+                            yield return ContinuousController.instance.StartCoroutine(selectedPermanent.AddDigivolutionCardsBottom(new List<CardSource>() { selectedCard }, activateClass, isFacedown: true));
                         }
                     }
                 }

+ 1 - 2
Assets/CardEffect/EX9/Yellow/EX9_028.cs

@@ -90,8 +90,7 @@ namespace DCGO.CardEffects.EX9
                         foreach (CardSource selectedCard in selectedCards)
                         {
                             yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddExecutingCard(selectedCard));
-                            selectedCard.SetReverse();
-                            yield return ContinuousController.instance.StartCoroutine(card.PermanentOfThisCard().AddDigivolutionCardsBottom(new List<CardSource>() { selectedCard }, activateClass));
+                            yield return ContinuousController.instance.StartCoroutine(card.PermanentOfThisCard().AddDigivolutionCardsBottom(new List<CardSource>() { selectedCard }, activateClass, isFacedown: true));
                         }
 
                         List<SelectionElement<bool>> selectionElements = new List<SelectionElement<bool>>()

+ 19 - 7
Assets/CardEffect/EX9/Yellow/EX9_029.cs

@@ -1,4 +1,4 @@
-using System;
+using System;
 using System.Collections;
 using System.Collections.Generic;
 
@@ -46,7 +46,7 @@ namespace DCGO.CardEffects.EX9
 
                 string EffectDescription()
                 {
-                    return "[When Digivolving] By placing 1 card in your hand face down as this Digimon's bottom digivolution card, if you have as many or fewer security cards as this Digimon has face-down digivolution cards, <Recovery +1(Deck)>.";
+                    return "[When Digivolving] [Once Per Turn] By placing 1 card in your hand face down as this Digimon's bottom digivolution card, if you have as many or fewer security cards as this Digimon has face-down digivolution cards, <Recovery +1 (Deck)> (Place the top card of your deck on top of your security stack).";
                 }
 
                 bool CanUseCondition(Hashtable hashtable)
@@ -93,7 +93,15 @@ namespace DCGO.CardEffects.EX9
                         yield return null;
                     }
 
-                    if (selectedCard && card.Owner.SecurityCards.Count <= card.PermanentOfThisCard().DigivolutionCards.Filter(x => x.IsFlipped).Count) yield return ContinuousController.instance.StartCoroutine(new IRecovery(card.Owner, 1, activateClass).Recovery());
+                    if(selectedCard != null)
+                    {
+                        yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddExecutingCard(selectedCard));
+                        yield return ContinuousController.instance.StartCoroutine(card.PermanentOfThisCard().AddDigivolutionCardsBottom(new List<CardSource>() { selectedCard }, activateClass, isFacedown: true));
+
+                        if (card.Owner.SecurityCards.Count <= card.PermanentOfThisCard().DigivolutionCards.Filter(x => x.IsFlipped).Count) 
+                            yield return ContinuousController.instance.StartCoroutine(new IRecovery(card.Owner, 1, activateClass).Recovery());
+
+                    }
                 }
             }
 
@@ -111,7 +119,7 @@ namespace DCGO.CardEffects.EX9
 
                 string EffectDescription()
                 {
-                    return "[When Attacking] By placing 1 card in your hand face down as this Digimon's bottom digivolution card, if you have as many or fewer security cards as this Digimon has face-down digivolution cards, <Recovery +1(Deck)>.";
+                    return "[When Attacking] [Once Per Turn] By placing 1 card in your hand face down as this Digimon's bottom digivolution card, if you have as many or fewer security cards as this Digimon has face-down digivolution cards, <Recovery +1 (Deck)> (Place the top card of your deck on top of your security stack).";
                 }
 
                 bool CanUseCondition(Hashtable hashtable)
@@ -161,10 +169,14 @@ namespace DCGO.CardEffects.EX9
                         yield return null;
                     }
 
-                    if (selectedCard &&
-                        card.Owner.SecurityCards.Count <= card.PermanentOfThisCard().DigivolutionCards.Filter(x => x.IsFlipped).Count)
+                    if (selectedCard != null)
                     {
-                        yield return ContinuousController.instance.StartCoroutine(new IRecovery(card.Owner, 1, activateClass).Recovery());
+                        yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddExecutingCard(selectedCard));
+                        yield return ContinuousController.instance.StartCoroutine(card.PermanentOfThisCard().AddDigivolutionCardsBottom(new List<CardSource>() { selectedCard }, activateClass, isFacedown: true));
+
+                        if (card.Owner.SecurityCards.Count <= card.PermanentOfThisCard().DigivolutionCards.Filter(x => x.IsFlipped).Count)
+                            yield return ContinuousController.instance.StartCoroutine(new IRecovery(card.Owner, 1, activateClass).Recovery());
+
                     }
                 }
             }

+ 8 - 6
Assets/CardEffect/EX9/Yellow/EX9_031.cs

@@ -45,7 +45,7 @@ namespace DCGO.CardEffects.EX9
 
             #region Ver3 Digivolution Cost Reduction
 
-            if (timing == EffectTiming.None)
+            if (timing == EffectTiming.BeforePayCost)
             {
                 Permanent selectedPermanent = null;
                 bool Condition()
@@ -70,12 +70,12 @@ namespace DCGO.CardEffects.EX9
 
                 int ReduceCost()
                 {
-                    return selectedPermanent.DigivolutionCards.Filter(x => x.IsFlipped).Count;
+                    return card.PermanentOfThisCard().DigivolutionCards.Filter(x => x.IsFlipped).Count;
                 }
 
                 cardEffects.Add(CardEffectFactory.ChangeDigivolutionCostStaticEffect<Func<int>>(
                     changeValue: () => -ReduceCost(),
-                    permanentCondition: (permanent) => { selectedPermanent = permanent; return PermanentCondition(permanent); },
+                    permanentCondition: PermanentCondition,
                     cardCondition: CardSourceCondition,
                     rootCondition: RootCondition,
                     isInheritedEffect: false,
@@ -121,12 +121,14 @@ namespace DCGO.CardEffects.EX9
                     maxCount: 1,
                     canNoTrash: false,
                     isFromOnly1Permanent: true,
-                    activateClass: activateClass
+                    activateClass: activateClass,
+                    afterSelectionCoroutine:AfterSelectCoroutine
                 ));
 
-                if (card.Owner.LibraryCards.Count >= 1 && card.Owner.CanAddSecurity(activateClass))
+                IEnumerator AfterSelectCoroutine(Permanent permanent, List<CardSource> cards)
                 {
-                    yield return ContinuousController.instance.StartCoroutine(new IRecovery(card.Owner, 1, activateClass).Recovery());
+                    if(cards.Count > 0)
+                        yield return ContinuousController.instance.StartCoroutine(new IRecovery(card.Owner, 1, activateClass).Recovery());
                 }
             }
 

+ 32 - 29
Assets/CardEffect/LM/Black/LM_025.cs

@@ -268,42 +268,45 @@ namespace DCGO.CardEffects.LM
 
                 bool CanActivateCondition(Hashtable hashtable)
                 {
-                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card) &&
-                           CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition);
+                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
+                           
                 }
 
                 IEnumerator ActivateCoroutine(Hashtable hashtable)
                 {
-                    Permanent selectedPermanent = null;
-
-                    SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
-
-                    selectPermanentEffect.SetUp(
-                        selectPlayer: card.Owner,
-                        canTargetCondition: CanSelectPermanentCondition,
-                        canTargetCondition_ByPreSelecetedList: null,
-                        canEndSelectCondition: null,
-                        maxCount: 1,
-                        canNoSelect: false,
-                        canEndNotMax: false,
-                        selectPermanentCoroutine: SelectPermanentCoroutine,
-                        afterSelectPermanentCoroutine: null,
-                        mode: SelectPermanentEffect.Mode.Custom,
-                        cardEffect: activateClass);
-
-                    selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon to De-Digivolve.",
-                        "The opponent is selecting 1 Digimon to De-Digivolve.");
-                    yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
-
-                    IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                    if (CardEffectCommons.HasMatchConditionPermanent(CanSelectPermanentCondition))
                     {
-                        selectedPermanent = permanent;
+                        Permanent selectedPermanent = null;
 
-                        yield return null;
-                    }
+                        SelectPermanentEffect selectPermanentEffect = GManager.instance.GetComponent<SelectPermanentEffect>();
+
+                        selectPermanentEffect.SetUp(
+                            selectPlayer: card.Owner,
+                            canTargetCondition: CanSelectPermanentCondition,
+                            canTargetCondition_ByPreSelecetedList: null,
+                            canEndSelectCondition: null,
+                            maxCount: 1,
+                            canNoSelect: false,
+                            canEndNotMax: false,
+                            selectPermanentCoroutine: SelectPermanentCoroutine,
+                            afterSelectPermanentCoroutine: null,
+                            mode: SelectPermanentEffect.Mode.Custom,
+                            cardEffect: activateClass);
+
+                        selectPermanentEffect.SetUpCustomMessage("Select 1 Digimon to De-Digivolve.",
+                            "The opponent is selecting 1 Digimon to De-Digivolve.");
+                        yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
+
+                        IEnumerator SelectPermanentCoroutine(Permanent permanent)
+                        {
+                            selectedPermanent = permanent;
 
-                    yield return ContinuousController.instance.StartCoroutine(new IDegeneration(
-                        selectedPermanent, 1, activateClass).Degeneration());
+                            yield return null;
+                        }
+
+                        yield return ContinuousController.instance.StartCoroutine(new IDegeneration(
+                            selectedPermanent, 1, activateClass).Degeneration());
+                    }
                 }
             }
 

+ 101 - 131
Assets/Scenes/Opening.unity

@@ -53850,12 +53850,12 @@ GameObject:
   - component: {fileID: 1156392934}
   - component: {fileID: 1156392933}
   m_Layer: 5
-  m_Name: CardImagesButton
+  m_Name: ReportButton
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 0
+  m_IsActive: 1
 --- !u!224 &1156392932
 RectTransform:
   m_ObjectHideFlags: 0
@@ -53875,9 +53875,9 @@ RectTransform:
   m_Father: {fileID: 7827412352336145668}
   m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
-  m_AnchorMin: {x: 0, y: 1}
-  m_AnchorMax: {x: 0, y: 1}
-  m_AnchoredPosition: {x: 80, y: -383}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 160, y: 30}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1156392933
@@ -55539,7 +55539,6 @@ GameObject:
   - component: {fileID: 1190407876}
   - component: {fileID: 1190407875}
   - component: {fileID: 1190407874}
-  - component: {fileID: 1190407873}
   m_Layer: 5
   m_Name: Button
   m_TagString: Untagged
@@ -55567,35 +55566,6 @@ RectTransform:
   m_AnchoredPosition: {x: 0, y: 0}
   m_SizeDelta: {x: 175.03, y: 36.55}
   m_Pivot: {x: 0.5, y: 0.5}
---- !u!114 &1190407873
-MonoBehaviour:
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_GameObject: {fileID: 1190407871}
-  m_Enabled: 1
-  m_EditorHideFlags: 0
-  m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3}
-  m_Name: 
-  m_EditorClassIdentifier: 
-  m_Delegates:
-  - eventID: 4
-    callback:
-      m_PersistentCalls:
-        m_Calls:
-        - m_Target: {fileID: 7827412352956199573}
-          m_TargetAssemblyTypeName: Opening, Assembly-CSharp
-          m_MethodName: CreateOnClickEffect
-          m_Mode: 1
-          m_Arguments:
-            m_ObjectArgument: {fileID: 0}
-            m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
-            m_IntArgument: 0
-            m_FloatArgument: 0
-            m_StringArgument: 
-            m_BoolArgument: 0
-          m_CallState: 2
 --- !u!114 &1190407874
 MonoBehaviour:
   m_ObjectHideFlags: 0
@@ -55645,9 +55615,9 @@ MonoBehaviour:
     callback:
       m_PersistentCalls:
         m_Calls:
-        - m_Target: {fileID: 146931507}
-          m_TargetAssemblyTypeName: CardImagePanel, Assembly-CSharp
-          m_MethodName: OnClickOpenCardImagePanelButton
+        - m_Target: {fileID: 1049396035}
+          m_TargetAssemblyTypeName: PatchNotes, Assembly-CSharp
+          m_MethodName: OnClickOpenReportButton
           m_Mode: 1
           m_Arguments:
             m_ObjectArgument: {fileID: 0}
@@ -67127,97 +67097,6 @@ MonoBehaviour:
   m_Name: 
   m_EditorClassIdentifier: 
   isPositive: 1
---- !u!21 &1434099624
-Material:
-  serializedVersion: 8
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_Name: Shapes2D Material
-  m_Shader: {fileID: 4800000, guid: 44f74e30da9814584b2fdcdbe799e51a, type: 3}
-  m_ValidKeywords:
-  - FILL_SOLID_COLOR
-  - RECTANGLE
-  m_InvalidKeywords:
-  - _EMISSION
-  m_LightmapFlags: 1
-  m_EnableInstancingVariants: 0
-  m_DoubleSidedGI: 0
-  m_CustomRenderQueue: 3000
-  stringTagMap: {}
-  disabledShaderPasses: []
-  m_SavedProperties:
-    serializedVersion: 3
-    m_TexEnvs:
-    - _BumpMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _DetailAlbedoMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _DetailMask:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _DetailNormalMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _EmissionMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _MainTex:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _MetallicGlossMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _OcclusionMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _ParallaxMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    m_Ints: []
-    m_Floats:
-    - _BumpScale: 1
-    - _ColorMask: 15
-    - _Cutoff: 0.5
-    - _DetailNormalMapScale: 1
-    - _DstBlend: 0
-    - _GlossMapScale: 1
-    - _Glossiness: 0.5
-    - _GlossyReflections: 1
-    - _Metallic: 0
-    - _Mode: 0
-    - _OcclusionStrength: 1
-    - _Parallax: 0.02
-    - _Shapes2D_DstAlpha: 1
-    - _Shapes2D_DstBlend: 10
-    - _Shapes2D_SrcAlpha: 1
-    - _Shapes2D_SrcBlend: 1
-    - _SmoothnessTextureChannel: 0
-    - _SpecularHighlights: 1
-    - _SrcBlend: 1
-    - _Stencil: 0
-    - _StencilComp: 8
-    - _StencilOp: 0
-    - _StencilReadMask: 255
-    - _StencilWriteMask: 255
-    - _UVSec: 0
-    - _ZWrite: 1
-    m_Colors:
-    - _Color: {r: 1, g: 1, b: 1, a: 1}
-    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
-  m_BuildTextureStacks: []
 --- !u!1 &1439132219
 GameObject:
   m_ObjectHideFlags: 0
@@ -71354,6 +71233,97 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1527172894}
   m_CullTransparentMesh: 0
+--- !u!21 &1530019089
+Material:
+  serializedVersion: 8
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Shapes2D Material
+  m_Shader: {fileID: 4800000, guid: 44f74e30da9814584b2fdcdbe799e51a, type: 3}
+  m_ValidKeywords:
+  - FILL_SOLID_COLOR
+  - RECTANGLE
+  m_InvalidKeywords:
+  - _EMISSION
+  m_LightmapFlags: 1
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: 3000
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailAlbedoMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailMask:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DetailNormalMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _ParallaxMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _BumpScale: 1
+    - _ColorMask: 15
+    - _Cutoff: 0.5
+    - _DetailNormalMapScale: 1
+    - _DstBlend: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _Mode: 0
+    - _OcclusionStrength: 1
+    - _Parallax: 0.02
+    - _Shapes2D_DstAlpha: 1
+    - _Shapes2D_DstBlend: 10
+    - _Shapes2D_SrcAlpha: 1
+    - _Shapes2D_SrcBlend: 1
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _Stencil: 0
+    - _StencilComp: 8
+    - _StencilOp: 0
+    - _StencilReadMask: 255
+    - _StencilWriteMask: 255
+    - _UVSec: 0
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+  m_BuildTextureStacks: []
 --- !u!1 &1530163594
 GameObject:
   m_ObjectHideFlags: 0
@@ -79711,7 +79681,7 @@ MonoBehaviour:
   m_OnCullStateChanged:
     m_PersistentCalls:
       m_Calls: []
-  m_text: Card Images
+  m_text: Report Bug
   m_isRightToLeft: 0
   m_fontAsset: {fileID: 11400000, guid: 648683e5fb301794dbaffc8decdbfff5, type: 2}
   m_sharedMaterial: {fileID: 1543216157722052209, guid: 648683e5fb301794dbaffc8decdbfff5, type: 2}
@@ -117921,7 +117891,7 @@ MonoBehaviour:
   m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
   m_Name: 
   m_EditorClassIdentifier: 
-  m_Material: {fileID: 1434099624}
+  m_Material: {fileID: 1530019089}
   m_Color: {r: 1, g: 1, b: 1, a: 1}
   m_RaycastTarget: 1
   m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}

+ 4 - 18
Assets/Scripts/PatchNotes.cs

@@ -18,25 +18,11 @@ public class PatchNotes : OffAnimation
     public void OnClickOpenPatchNotesPanelButton()
     {
         Application.OpenURL("https://dcgo.online/PatchNotes.html");
-        /*if (_isOpen)
-        {
-            ClosePatchNotesPanel();
-        }
-
-        else
-        {
-            if (Opening.instance != null)
-            {
-                Opening.instance.PlayDecisionSE();
-            }
-
-            else if (GManager.instance != null)
-            {
-                GManager.instance.PlayDecisionSE();
-            }
+    }
 
-            ContinuousController.instance.StartCoroutine(Open());
-        }*/
+    public void OnClickOpenReportButton()
+    {
+        Application.OpenURL("https://forms.gle/GhZgGVJS1qLeUMcG8");
     }
 
     public IEnumerator Open()