Jelajahi Sumber

Revert "General fix: Multiple DigiXros or Assemblies at once" (#703)

x89rt2 5 bulan lalu
induk
melakukan
ecd54ea97e

+ 3 - 3
Assets/Scripts/CardEffect/BT10/Purple/BT10_093.cs

@@ -114,7 +114,7 @@ namespace DCGO.CardEffects.BT10
             {
                 if (CardEffectCommons.IsExistOnBattleArea(card))
                 {
-                    if (CardEffectCommons.HasMatchConditionOwnersPermanent(card, (permanent) => permanent.IsTamer && permanent.DigivolutionCards.Count((cardSource) => cardSource.IsDigimon && cardSource.CardColors.Contains(CardColor.Purple) && GManager.instance.GetComponent<SelectDigiXrosClass>().GetAddDigivolutionCardInfos(CardEffectCommons.GetCardFromHashtable(hashtable)).Count((addDigivolutionCardInfo) => addDigivolutionCardInfo.cardSources.Contains(cardSource)) == 0) >= 1))
+                    if (CardEffectCommons.HasMatchConditionOwnersPermanent(card, (permanent) => permanent.IsTamer && permanent.DigivolutionCards.Count((cardSource) => cardSource.IsDigimon && cardSource.CardColors.Contains(CardColor.Purple) && GManager.instance.GetComponent<SelectDigiXrosClass>().addDigivolutionCardInfos.Count((addDigivolutionCardInfo) => addDigivolutionCardInfo.cardSources.Contains(cardSource)) == 0) >= 1))
                     {
                         return true;
                     }
@@ -133,7 +133,7 @@ namespace DCGO.CardEffects.BT10
                     {
                         if (!digivolutionCards.Contains(cardSource))
                         {
-                            if (GManager.instance.GetComponent<SelectDigiXrosClass>().GetAddDigivolutionCardInfos(CardEffectCommons.GetCardFromHashtable(_hashtable)).Count((addDigivolutionCardInfo) => addDigivolutionCardInfo.cardSources.Contains(cardSource)) == 0)
+                            if (GManager.instance.GetComponent<SelectDigiXrosClass>().addDigivolutionCardInfos.Count((addDigivolutionCardInfo) => addDigivolutionCardInfo.cardSources.Contains(cardSource)) == 0)
                             {
                                 if (cardSource.CardColors.Contains(CardColor.Purple))
                                 {
@@ -280,7 +280,7 @@ namespace DCGO.CardEffects.BT10
 
                     if (digivolutionCards.Count >= 1)
                     {
-                        GManager.instance.GetComponent<SelectDigiXrosClass>().AddDigivolutionCardInfos(CardEffectCommons.GetCardFromHashtable(_hashtable), new AddDigivolutionCardsInfo(activateClass2, digivolutionCards));
+                        GManager.instance.GetComponent<SelectDigiXrosClass>().AddDigivolutionCardInfos(new AddDigivolutionCardsInfo(activateClass2, digivolutionCards));
 
                         int reduceCount = 2 * digivolutionCards.Count;
 

+ 1 - 1
Assets/Scripts/CardEffect/BT12/White/BT12_112.cs

@@ -110,7 +110,7 @@ namespace DCGO.CardEffects.BT12
                                     {
                                         if (!selectedPermanent.TopCard.CanNotBeAffected(activateClass))
                                         {
-                                            GManager.instance.GetComponent<SelectDigiXrosClass>().AddDigivolutionCardInfos(card, new AddDigivolutionCardsInfo(activateClass, new List<CardSource>() { selectedPermanent.TopCard }));
+                                            GManager.instance.GetComponent<SelectDigiXrosClass>().AddDigivolutionCardInfos(new AddDigivolutionCardsInfo(activateClass, new List<CardSource>() { selectedPermanent.TopCard }));
 
                                             if (card.Owner.CanReduceCost(null, card))
                                             {

+ 1 - 1
Assets/Scripts/CardEffect/BT15/White/BT15_102.cs

@@ -218,7 +218,7 @@ namespace DCGO.CardEffects.BT15
 
                             if (selectedCards.Count >= 1)
                             {
-                                GManager.instance.GetComponent<SelectDigiXrosClass>().AddDigivolutionCardInfos(card, new AddDigivolutionCardsInfo(activateClass, selectedCards));
+                                GManager.instance.GetComponent<SelectDigiXrosClass>().AddDigivolutionCardInfos(new AddDigivolutionCardsInfo(activateClass, selectedCards));
 
                                 yield return StartCoroutine(AfterSelectCardCoroutine(selectedCards));
                             }

+ 1 - 1
Assets/Scripts/CardEffect/BT21/Red/BT21_030.cs

@@ -220,7 +220,7 @@ namespace DCGO.CardEffects.BT21
                                     {
                                         if (!selectedPermanent.TopCard.CanNotBeAffected(activateClass))
                                         {
-                                            GManager.instance.GetComponent<SelectDigiXrosClass>().AddDigivolutionCardInfos(card, new AddDigivolutionCardsInfo(activateClass, new List<CardSource>() { selectedPermanent.TopCard }));
+                                            GManager.instance.GetComponent<SelectDigiXrosClass>().AddDigivolutionCardInfos(new AddDigivolutionCardsInfo(activateClass, new List<CardSource>() { selectedPermanent.TopCard }));
 
                                             if (card.Owner.CanReduceCost(null, card))
                                             {

+ 1 - 1
Assets/Scripts/CardEffect/EX10/White/EX10_061.cs

@@ -218,7 +218,7 @@ namespace DCGO.CardEffects.EX10
 
                             if (selectedCards.Count >= 1)
                             {
-                                GManager.instance.GetComponent<SelectDigiXrosClass>().AddDigivolutionCardInfos(card, new AddDigivolutionCardsInfo(activateClass, selectedCards));
+                                GManager.instance.GetComponent<SelectDigiXrosClass>().AddDigivolutionCardInfos(new AddDigivolutionCardsInfo(activateClass, selectedCards));
                                 yield return ContinuousController.instance.StartCoroutine(new IReduceSecurity(
                                     player: card.Owner,
                                     refSkillInfos: ref ContinuousController.instance.nullSkillInfos,

+ 10 - 5
Assets/Scripts/Script/CardController.cs

@@ -1224,9 +1224,15 @@ public class PlayPermanentClass
         {
             yield return ContinuousController.instance.StartCoroutine(card.Owner.brainStormObject.CloseBrainstrorm(card));
 
-            _digiXrosCount = GManager.instance.GetComponent<SelectDigiXrosClass>().GetSelectedCardCount(card);
+            if (GManager.instance.GetComponent<SelectDigiXrosClass>().playCard == card)
+            {
+                _digiXrosCount = GManager.instance.GetComponent<SelectDigiXrosClass>().selectedDigicrossCards.Count;
+            }
 
-            _assemblyCount = GManager.instance.GetComponent<SelectAssemblyClass>().GetSelectedCardCount(card);
+            if (GManager.instance.GetComponent<SelectAssemblyClass>().playCard == card)
+            {
+                _assemblyCount = GManager.instance.GetComponent<SelectAssemblyClass>().selectedAssemblyCards.Count;
+            }
 
             bool isFromDigimonDigivolutionCards = card.Owner.GetFieldPermanents().Some((permanent) => permanent.DigivolutionCards.Contains(card));
 
@@ -1607,14 +1613,13 @@ public class PlayPermanentClass
                 }
             }
 
+            GManager.instance.GetComponent<SelectDigiXrosClass>().ResetSelectDigiXrosClass();
+            GManager.instance.GetComponent<SelectAssemblyClass>().ResetSelectAssemblyClass();
             GManager.instance.GetComponent<SelectDNACondition>().ResetSelectDNAConditionClass();
 
             yield return GManager.instance.photonWaitController.StartWait("EndPlayPermanent");
         }
 
-        GManager.instance.GetComponent<SelectDigiXrosClass>().ResetSelectDigiXrosClass();
-        GManager.instance.GetComponent<SelectAssemblyClass>().ResetSelectAssemblyClass();
-
         // except [On Play] effect
         bool CardEffectCondition(ICardEffect cardEffect)
         {

+ 2 - 2
Assets/Scripts/Script/CardEffectCommons/GameContextDeterminarion.cs

@@ -190,8 +190,8 @@ public partial class CardEffectCommons
         int fixedCost = -1) =>
     cardSource != null &&
     (isPlayOption || !cardSource.IsOption) &&
-    !GManager.instance.GetComponent<SelectDigiXrosClass>().PreviouslySelectedDigicrossCards.Contains(cardSource) &&
-    !GManager.instance.GetComponent<SelectAssemblyClass>().PreviouslySelectedAssemblyCards.Contains(cardSource)
+    !GManager.instance.GetComponent<SelectDigiXrosClass>().selectedDigicrossCards.Contains(cardSource) &&
+    !GManager.instance.GetComponent<SelectAssemblyClass>().selectedAssemblyCards.Contains(cardSource)
     && cardSource.Owner.fieldCardFrames.Some((frame) =>
     frame.IsEmptyFrame()
     && cardSource.CanPlayCardTargetFrame(frame, payCost, cardEffect, root, isBreedingArea: isBreedingArea, fixedCost: fixedCost));

+ 4 - 4
Assets/Scripts/Script/CardSource.cs

@@ -570,9 +570,9 @@ public class CardSource : MonoBehaviour
 
                         if (selectDigiXrosClass != null)
                         {
-                            if (selectDigiXrosClass.WasDigiXrosed(this))
+                            if (selectDigiXrosClass.playCard == this)
                             {
-                                Cost -= selectDigiXrosClass.GetSelectedCardCount(this) * digiXrosCondition.reduceCostPerCard;
+                                Cost -= selectDigiXrosClass.selectedDigicrossCards.Count * digiXrosCondition.reduceCostPerCard;
                             }
                         }
                     }
@@ -605,9 +605,9 @@ public class CardSource : MonoBehaviour
 
                         if (selectAssemblyClass != null)
                         {
-                            if (selectAssemblyClass.WasAssembled(this))
+                            if (selectAssemblyClass.playCard == this)
                             {
-                                if (selectAssemblyClass.GetSelectedCardCount(this) == assemblyCondition.elementCount)
+                                if (selectAssemblyClass.selectedAssemblyCards.Count == assemblyCondition.elementCount)
                                     Cost -= assemblyCondition.reduceCost;
                             }
                         }

+ 36 - 111
Assets/Scripts/Script/SelectAssemblyClass.cs

@@ -9,61 +9,20 @@ using UnityEngine.Events;
 
 public class SelectAssemblyClass : MonoBehaviourPunCallbacks
 {
-    private List<CardSource> selectedAssemblyCards = new List<CardSource>();
-    public List<CardSource> PreviouslySelectedAssemblyCards { get; private set; } = new List<CardSource>();
-    private List<PlayCardTuple> AllAssemblyCards = new List<PlayCardTuple>();
-
-    void AddSelectedCard(CardSource cardSource)
-    {
-        selectedAssemblyCards.Add(cardSource);
-        PreviouslySelectedAssemblyCards.Add(cardSource);
-    }
-
-    public List<CardSource> GetPreviouslySelected()
-    {
-        SelectDigiXrosClass selectDigiXrosClass = GManager.instance.GetComponent<SelectDigiXrosClass>();
-        return AllAssemblyCards.Map(tuple => tuple.SelectedAssemblyCards).Flat().Concat(selectDigiXrosClass.PreviouslySelectedDigicrossCards).ToList();
-    }
-
-    private class PlayCardTuple
-    {
-        public CardSource PlayCard;
-        public List<CardSource> SelectedAssemblyCards;
-        public List<AddDigivolutionCardsInfo> AddDigivolutionCardInfos;
-    }
-
-    private PlayCardTuple GetTupleForCard(CardSource card)
-    {
-        return AllAssemblyCards.FirstOrDefault(tuple => tuple.PlayCard == card);
-    }
-
-    private PlayCardTuple GetOrMakeTupleForCard(CardSource card)
-    {
-        PlayCardTuple cardTuple = GetTupleForCard(card);
-        if (cardTuple == null)
-        {
-            cardTuple = new()
-            {
-                PlayCard = card,
-                SelectedAssemblyCards = new List<CardSource>(),
-                AddDigivolutionCardInfos = new List<AddDigivolutionCardsInfo>()
-            };
-            AllAssemblyCards.Add(cardTuple);
-        }
-        return cardTuple;
-    }
+    public List<CardSource> selectedAssemblyCards { get; private set; } = new List<CardSource>();
+    public List<AddDigivolutionCardsInfo> addDigivolutionCardInfos { get; private set; } = new List<AddDigivolutionCardsInfo>();
+    public CardSource playCard { get; private set; } = null;
 
     public void ResetSelectAssemblyClass()
     {
-        AllAssemblyCards = new List<PlayCardTuple>();
         selectedAssemblyCards = new List<CardSource>();
-        PreviouslySelectedAssemblyCards = new List<CardSource>();
+        addDigivolutionCardInfos = new List<AddDigivolutionCardsInfo>();
+        playCard = null;
     }
 
-    public void AddDigivolutionCardInfos(CardSource card, AddDigivolutionCardsInfo digivolutionCardsInfo)
+    public void AddDigivolutionCardInfos(AddDigivolutionCardsInfo digivolutionCardsInfo)
     {
-        PlayCardTuple cardTuple = GetOrMakeTupleForCard(card);
-        cardTuple.AddDigivolutionCardInfos.Add(digivolutionCardsInfo);
+        addDigivolutionCardInfos.Add(digivolutionCardsInfo);
     }
 
     #region Is Trash Card
@@ -98,14 +57,13 @@ public class SelectAssemblyClass : MonoBehaviourPunCallbacks
                             {
                                 if (!targetCard.IsToken)
                                 {
-                                    if (!PreviouslySelectedAssemblyCards.Contains(targetCard))
+                                    if (!selectedAssemblyCards.Contains(targetCard))
                                     {
-                                        List<AddDigivolutionCardsInfo> addDigivolutionCardInfos = GetAddDigivolutionCardInfos(card);
                                         if (addDigivolutionCardInfos.Count((addDigivolutionCardInfo) => addDigivolutionCardInfo.cardSources.Contains(targetCard)) == 0)
                                         {
                                             if (element.CanTargetCondition_ByPreSelecetedList != null)
                                             {
-                                                if (!element.CanTargetCondition_ByPreSelecetedList(PreviouslySelectedAssemblyCards, targetCard))
+                                                if (!element.CanTargetCondition_ByPreSelecetedList(selectedAssemblyCards, targetCard))
                                                 {
                                                     return false;
                                                 }
@@ -168,7 +126,7 @@ public class SelectAssemblyClass : MonoBehaviourPunCallbacks
         if (index >= AssemblyCondition.elements.Count)
             return true;
             
-        usedCards ??= PreviouslySelectedAssemblyCards;
+        usedCards ??= new List<CardSource>();
 
         AssemblyConditionElement currentElement = AssemblyCondition.elements[index];
 
@@ -198,11 +156,9 @@ public class SelectAssemblyClass : MonoBehaviourPunCallbacks
     {
         GManager.instance.turnStateMachine.isSync = true;
 
-        PlayCardTuple cardTuple = GetOrMakeTupleForCard(card);
-
-        selectedAssemblyCards = cardTuple.SelectedAssemblyCards;
+        selectedAssemblyCards = new List<CardSource>();
 
-        PreviouslySelectedAssemblyCards = GetPreviouslySelected();
+        playCard = card;
 
         if (CanFulfillConditions(card))
         {
@@ -318,45 +274,16 @@ public class SelectAssemblyClass : MonoBehaviourPunCallbacks
     }
     #endregion
 
-    #region Check if card was Assembled
-    public bool WasAssembled(CardSource card)
-    {
-        return GetTupleForCard(card) != null;
-    }
-    #endregion
-
-    #region Get Count of Digivolution Cards for Card
-    public int GetSelectedCardCount(CardSource card)
-    {
-        PlayCardTuple cardTuple = GetTupleForCard(card);
-        if (cardTuple != null)
-        {
-            return cardTuple.SelectedAssemblyCards.Count;
-        }
-        return 0;
-    }
-    #endregion
-
-    #region Get AddDigivolutionCardInfos
-    public List<AddDigivolutionCardsInfo> GetAddDigivolutionCardInfos(CardSource card)
-    {
-        PlayCardTuple cardTuple = GetOrMakeTupleForCard(card);
-        return cardTuple.AddDigivolutionCardInfos;
-    }
-    #endregion
-
     #region Add Digivolution Cards
     public IEnumerator AddDigivolutiuonCards(CardSource card)
     {
         if (card != null)
         {
-            PlayCardTuple cardTuple = GetTupleForCard(card);
-            if (cardTuple != null)
+            if (card == playCard)
             {
                 if (card.PermanentOfThisCard() != null)
                 {
-                    selectedAssemblyCards = cardTuple.SelectedAssemblyCards;
-                    if (selectedAssemblyCards.Count == cardTuple.PlayCard.assemblyCondition.elementCount)
+                    if (selectedAssemblyCards.Count == playCard.assemblyCondition.elementCount)
                     {
                         yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().ShowCardEffect(selectedAssemblyCards, "Assembly Cards", true, true));
 
@@ -383,44 +310,42 @@ public class SelectAssemblyClass : MonoBehaviourPunCallbacks
     #region Add Digivolution Card
     public IEnumerator AddDigivolutiuonCardsByEffect(CardSource card)
     {
-        PlayCardTuple cardTuple = GetTupleForCard(card);
-        if (cardTuple != null)
+        if (addDigivolutionCardInfos.Count >= 1)
         {
-            List<AddDigivolutionCardsInfo> addDigivolutionCardInfos = cardTuple.AddDigivolutionCardInfos;
-            if (addDigivolutionCardInfos.Count >= 1)
+            if (card != null)
             {
-                if (card != null)
+                if (card.PermanentOfThisCard() != null)
                 {
-                    if (card.PermanentOfThisCard() != null)
+                    List<CardSource> addedCards = new List<CardSource>();
+
+                    foreach (AddDigivolutionCardsInfo info in addDigivolutionCardInfos)
                     {
-                        List<CardSource> addedCards = new List<CardSource>();
+                        List<CardSource> underTamerCards = new List<CardSource>();
+                        List<Permanent> digimonPermanents = new List<Permanent>();
+                        List<CardSource> trashCards = new List<CardSource>();
 
-                        foreach (AddDigivolutionCardsInfo info in addDigivolutionCardInfos)
+                        foreach (CardSource cardSource in info.cardSources)
                         {
-                            List<CardSource> underTamerCards = new List<CardSource>();
-                            List<Permanent> digimonPermanents = new List<Permanent>();
-                            List<CardSource> trashCards = new List<CardSource>();
-
-                            foreach (CardSource cardSource in info.cardSources)
-                            {
-                                if (isTrashCard(cardSource))
-                                {
-                                    trashCards.Add(cardSource);
-                                    addedCards.Add(cardSource);
-                                }
-                            }
-
-                            if (trashCards.Count >= 1)
+                            if (isTrashCard(cardSource))
                             {
-                                yield return ContinuousController.instance.StartCoroutine(card.PermanentOfThisCard().AddDigivolutionCardsBottom(trashCards, info.cardEffect));
+                                trashCards.Add(cardSource);
+                                addedCards.Add(cardSource);
                             }
                         }
 
-                        yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().ShowCardEffect2(addedCards, "Digivolution Cards", true, true));
+                        if (trashCards.Count >= 1)
+                        {
+                            yield return ContinuousController.instance.StartCoroutine(card.PermanentOfThisCard().AddDigivolutionCardsBottom(trashCards, info.cardEffect));
+                        }
                     }
+
+                    yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().ShowCardEffect2(addedCards, "Digivolution Cards", true, true));
                 }
             }
         }
+
+        addDigivolutionCardInfos = new List<AddDigivolutionCardsInfo>();
+
         yield return null;
     }
     #endregion

+ 74 - 152
Assets/Scripts/Script/SelectDigiXrosClass.cs

@@ -9,63 +9,20 @@ using UnityEngine.Events;
 
 public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
 {
-    private List<CardSource> selectedDigicrossCards = new List<CardSource>();
-
-    public List<CardSource> PreviouslySelectedDigicrossCards { get; private set; } = new List<CardSource>();
-
-    private List<PlayCardTuple> AllDigiXrosCards = new List<PlayCardTuple>();
-
-    private void AddSelectedCard(CardSource cardSource)
-    {
-        selectedDigicrossCards.Add(cardSource);
-        PreviouslySelectedDigicrossCards.Add(cardSource);
-    }
-
-    private List<CardSource> GetPreviouslySelected()
-    {
-        SelectAssemblyClass selectAssemblyClass = GManager.instance.GetComponent<SelectAssemblyClass>();
-        return AllDigiXrosCards.Map(tuple => tuple.SelectedDigicrossCards).Flat().Concat(selectAssemblyClass.PreviouslySelectedAssemblyCards).ToList();
-    }
-    
-    private class PlayCardTuple
-    {
-        public CardSource PlayCard;
-        public List<CardSource> SelectedDigicrossCards;
-        public List<AddDigivolutionCardsInfo> AddDigivolutionCardInfos;
-    }
-
-    private PlayCardTuple GetTupleForCard(CardSource card)
-    {
-        return AllDigiXrosCards.FirstOrDefault(tuple => tuple.PlayCard == card);
-    }
-
-    private PlayCardTuple GetOrMakeTupleForCard(CardSource card)
-    {
-        PlayCardTuple cardTuple = GetTupleForCard(card);
-        if (cardTuple == null)
-        {
-            cardTuple = new()
-            {
-                PlayCard = card,
-                SelectedDigicrossCards = new List<CardSource>(),
-                AddDigivolutionCardInfos = new List<AddDigivolutionCardsInfo>()
-            };
-            AllDigiXrosCards.Add(cardTuple);
-        }
-        return cardTuple;
-    }
+    public List<CardSource> selectedDigicrossCards { get; private set; } = new List<CardSource>();
+    public List<AddDigivolutionCardsInfo> addDigivolutionCardInfos { get; private set; } = new List<AddDigivolutionCardsInfo>();
+    public CardSource playCard { get; private set; } = null;
 
     public void ResetSelectDigiXrosClass()
     {
-        AllDigiXrosCards = new List<PlayCardTuple>();
         selectedDigicrossCards = new List<CardSource>();
-        PreviouslySelectedDigicrossCards = new List<CardSource>();
+        addDigivolutionCardInfos = new List<AddDigivolutionCardsInfo>();
+        playCard = null;
     }
 
-    public void AddDigivolutionCardInfos(CardSource card, AddDigivolutionCardsInfo digivolutionCardsInfo)
+    public void AddDigivolutionCardInfos(AddDigivolutionCardsInfo digivolutionCardsInfo)
     {
-        PlayCardTuple cardTuple = GetOrMakeTupleForCard(card);
-        cardTuple.AddDigivolutionCardInfos.Add(digivolutionCardsInfo);
+        addDigivolutionCardInfos.Add(digivolutionCardsInfo);
     }
 
     #region Max Trash Count
@@ -77,10 +34,10 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
         {
             List<int> maxTrashCountList = new List<int>();
 
-            #region 驕ク謚槫庄閭ス繝医Λ繝�す繝・譫壽焚繧貞、画峩縺吶k蜉ケ譫�
+            #region 選択可能トラッシュ枚数を変更する効果
             foreach (Player player in GManager.instance.turnStateMachine.gameContext.Players_ForTurnPlayer)
             {
-                #region 蝣エ縺ョ繝代�繝槭ロ繝ウ繝医�蜉ケ譫�
+                #region 場のパーマネントの効果
                 foreach (Permanent permanent in player.GetBattleAreaPermanents())
                 {
                     foreach (ICardEffect cardEffect in permanent.EffectList(EffectTiming.None))
@@ -101,7 +58,7 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
                 }
                 #endregion
 
-                #region 繝励Ξ繧、繝、繝シ縺ョ蜉ケ譫�
+                #region プレイヤーの効果
                 foreach (ICardEffect cardEffect in player.EffectList(EffectTiming.None))
                 {
                     if (cardEffect is IAddMaxTrashCountDigiXrosEffect)
@@ -120,7 +77,7 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
                 #endregion
             }
 
-            #region 繧ォ繝シ繝芽�霄ォ縺ョ蜉ケ譫�
+            #region カード自身の効果
             if (card.PermanentOfThisCard() == null)
             {
                 foreach (ICardEffect cardEffect in card.EffectList(EffectTiming.None))
@@ -172,10 +129,10 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
         {
             List<int> maxTamerDigivolutionCardsCountList = new List<int>();
 
-            #region 驕ク謚槫庄閭ス繝�う繝槭�騾イ蛹門�譫壽焚繧貞、画峩縺吶k蜉ケ譫�
+            #region 選択可能テイマー進化元枚数を変更する効果
             foreach (Player player in GManager.instance.turnStateMachine.gameContext.Players_ForTurnPlayer)
             {
-                #region 蝣エ縺ョ繝代�繝槭ロ繝ウ繝医�蜉ケ譫�
+                #region 場のパーマネントの効果
                 foreach (Permanent permanent in player.GetBattleAreaPermanents())
                 {
                     foreach (ICardEffect cardEffect in permanent.EffectList(EffectTiming.None))
@@ -196,7 +153,7 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
                 }
                 #endregion
 
-                #region 繝励Ξ繧、繝、繝シ縺ョ蜉ケ譫�
+                #region プレイヤーの効果
                 foreach (ICardEffect cardEffect in player.EffectList(EffectTiming.None))
                 {
                     if (cardEffect is IAddMaxUnderTamerCountDigiXrosEffect)
@@ -215,7 +172,7 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
                 #endregion
             }
 
-            #region 繧ォ繝シ繝芽�霄ォ縺ョ蜉ケ譫�
+            #region カード自身の効果
             if (card.PermanentOfThisCard() == null)
             {
                 foreach (ICardEffect cardEffect in card.EffectList(EffectTiming.None))
@@ -357,14 +314,13 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
                             {
                                 if (!targetCard.IsToken)
                                 {
-                                    if (!PreviouslySelectedDigicrossCards.Contains(targetCard))
+                                    if (!selectedDigicrossCards.Contains(targetCard))
                                     {
-                                        List<AddDigivolutionCardsInfo> addDigivolutionCardInfos = GetAddDigivolutionCardInfos(card);
                                         if (addDigivolutionCardInfos.Count((addDigivolutionCardInfo) => addDigivolutionCardInfo.cardSources.Contains(targetCard)) == 0)
                                         {
                                             if (card.digiXrosCondition.CanTargetCondition_ByPreSelecetedList != null)
                                             {
-                                                if (!card.digiXrosCondition.CanTargetCondition_ByPreSelecetedList(PreviouslySelectedDigicrossCards, targetCard))
+                                                if (!card.digiXrosCondition.CanTargetCondition_ByPreSelecetedList(selectedDigicrossCards, targetCard))
                                                 {
                                                     return false;
                                                 }
@@ -404,11 +360,9 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
     {
         GManager.instance.turnStateMachine.isSync = true;
 
-        PlayCardTuple cardTuple = GetOrMakeTupleForCard(card);
-
-        selectedDigicrossCards = cardTuple.SelectedDigicrossCards;
+        selectedDigicrossCards = new List<CardSource>();
 
-        PreviouslySelectedDigicrossCards = GetPreviouslySelected();
+        playCard = card;
 
         if (card != null)
         {
@@ -564,7 +518,7 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
                         {
                             GManager.instance.commandText.OpenCommandText($"The opponent is choosing from which area to select {element.selectMessage}.", digiXros: true);
 
-                            #region AI繝「繝シ繝�
+                            #region AIモード
                             if (GManager.instance.IsAI)
                             {
                                 List<int> indexes = new List<int>();
@@ -646,7 +600,7 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
 
             IEnumerator SelectCardCoroutine(CardSource cardSource)
             {
-                AddSelectedCard(cardSource);
+                selectedDigicrossCards.Add(cardSource);
 
                 yield return null;
             }
@@ -670,7 +624,7 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
     }
     #endregion
 
-    #region Select Battle Area Permanent
+    #region elect Battle Area Permanent
     IEnumerator SelectBattleAreaPermanent(DigiXrosCondition digiXrosCondition, DigiXrosConditionElement element, CardSource card)
     {
         bool CanSelectPermanentCondition(Permanent permanent) => permanent.TopCard.Owner.GetBattleAreaPermanents().Contains(permanent) && CanSelectDigiXros(element, permanent.TopCard, card);
@@ -704,7 +658,7 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
 
             IEnumerator SelectPermanentCoroutine(Permanent permanent)
             {
-                AddSelectedCard(permanent.TopCard);
+                selectedDigicrossCards.Add(permanent.TopCard);
 
                 yield return null;
             }
@@ -821,7 +775,7 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
 
                     IEnumerator SelectCardCoroutine(CardSource cardSource)
                     {
-                        AddSelectedCard(cardSource);
+                        selectedDigicrossCards.Add(cardSource);
 
                         yield return null;
                     }
@@ -886,7 +840,7 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
 
             IEnumerator SelectCardCoroutine(CardSource cardSource)
             {
-                AddSelectedCard(cardSource);
+                selectedDigicrossCards.Add(cardSource);
 
                 yield return null;
             }
@@ -918,33 +872,6 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
     }
     #endregion
 
-    #region Check if card was DigiXrosed
-    public bool WasDigiXrosed(CardSource card)
-    {
-        return GetTupleForCard(card) != null;
-    }
-    #endregion
-
-    #region Get Count of Digivolution Cards for Card
-    public int GetSelectedCardCount(CardSource card)
-    {
-        PlayCardTuple cardTuple = GetTupleForCard(card);
-        if (cardTuple != null)
-        {
-            return cardTuple.SelectedDigicrossCards.Count;
-        }
-        return 0;
-    }
-    #endregion
-
-    #region Get AddDigivolutionCardInfos
-    public List<AddDigivolutionCardsInfo> GetAddDigivolutionCardInfos(CardSource card)
-    {
-        PlayCardTuple cardTuple = GetOrMakeTupleForCard(card);
-        return cardTuple.AddDigivolutionCardInfos;
-    }
-    #endregion
-
     #region Add Digivolution Cards
     public IEnumerator AddDigivolutiuonCards(CardSource card)
     {
@@ -952,13 +879,10 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
         {
             if (card != null)
             {
-                PlayCardTuple cardTuple = GetTupleForCard(card);
-                if (cardTuple != null)
+                if (card == playCard)
                 {
                     if (card.PermanentOfThisCard() != null)
                     {
-                        selectedDigicrossCards = cardTuple.SelectedDigicrossCards;
-
                         yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().ShowCardEffect(selectedDigicrossCards, "Digixros Cards", true, true));
 
                         foreach (CardSource cardSource in selectedDigicrossCards)
@@ -1003,83 +927,81 @@ public class SelectDigiXrosClass : MonoBehaviourPunCallbacks
     }
     #endregion
 
-    #region 蜉ケ譫懊↓繧医▲縺ヲ騾イ蛹門�繧剃サ倅ク�(螟ゥ驥弱Θ繧ヲ(BT10),繧キ繝」繧ヲ繝医Δ繝ウX7繧ケ繝壹Μ繧ェ繝ォ繝「繝シ繝�(BT12))
+    #region 効果によって進化元を付与(天野ユウ(BT10),シャウトモンX7スペリオルモード(BT12))
     public IEnumerator AddDigivolutiuonCardsByEffect(CardSource card)
     {
-        PlayCardTuple cardTuple = GetTupleForCard(card);
-        if (cardTuple != null)
+        if (addDigivolutionCardInfos.Count >= 1)
         {
-            List<AddDigivolutionCardsInfo> addDigivolutionCardInfos = cardTuple.AddDigivolutionCardInfos;
-            if (addDigivolutionCardInfos.Count >= 1)
+            if (card != null)
             {
-                if (card != null)
+                if (card.PermanentOfThisCard() != null)
                 {
-                    if (card.PermanentOfThisCard() != null)
+                    List<CardSource> addedCards = new List<CardSource>();
+
+                    foreach (AddDigivolutionCardsInfo info in addDigivolutionCardInfos)
                     {
-                        List<CardSource> addedCards = new List<CardSource>();
+                        List<CardSource> underTamerCards = new List<CardSource>();
+                        List<Permanent> digimonPermanents = new List<Permanent>();
+                        List<CardSource> trashCards = new List<CardSource>();
+                        List<CardSource> secuirtyCards = new List<CardSource>();
 
-                        foreach (AddDigivolutionCardsInfo info in addDigivolutionCardInfos)
+                        foreach (CardSource cardSource in info.cardSources)
                         {
-                            List<CardSource> underTamerCards = new List<CardSource>();
-                            List<Permanent> digimonPermanents = new List<Permanent>();
-                            List<CardSource> trashCards = new List<CardSource>();
-                            List<CardSource> secuirtyCards = new List<CardSource>();
-
-                            foreach (CardSource cardSource in info.cardSources)
+                            if (isTamerDigivolutionCard(cardSource))
                             {
-                                if (isTamerDigivolutionCard(cardSource))
-                                {
-                                    underTamerCards.Add(cardSource);
-                                    addedCards.Add(cardSource);
-                                }
-
-                                else if (isBattleAreaCard(cardSource))
-                                {
-                                    digimonPermanents.Add(cardSource.PermanentOfThisCard());
-                                    addedCards.Add(cardSource);
-                                }
-                                else if (isTrashCard(cardSource))
-                                {
-                                    trashCards.Add(cardSource);
-                                    addedCards.Add(cardSource);
-                                }
-
-                                else if (isSecurityCard(cardSource))
-                                {
-                                    secuirtyCards.Add(cardSource);
-                                    addedCards.Add(cardSource);
-                                }
+                                underTamerCards.Add(cardSource);
+                                addedCards.Add(cardSource);
                             }
 
-                            if (underTamerCards.Count >= 1)
+                            else if (isBattleAreaCard(cardSource))
                             {
-                                yield return ContinuousController.instance.StartCoroutine(card.PermanentOfThisCard().AddDigivolutionCardsBottom(underTamerCards, info.cardEffect));
+                                digimonPermanents.Add(cardSource.PermanentOfThisCard());
+                                addedCards.Add(cardSource);
                             }
-
-                            if (digimonPermanents.Count >= 1)
+                            else if (isTrashCard(cardSource))
                             {
-                                foreach (Permanent digimonPermanent in digimonPermanents)
-                                {
-                                    yield return ContinuousController.instance.StartCoroutine(new IPlacePermanentToDigivolutionCards(new List<Permanent[]>() { new Permanent[] { digimonPermanent, card.PermanentOfThisCard() } }, false, info.cardEffect).PlacePermanentToDigivolutionCards());
-                                }
+                                trashCards.Add(cardSource);
+                                addedCards.Add(cardSource);
                             }
 
-                            if (trashCards.Count >= 1)
+                            else if (isSecurityCard(cardSource))
                             {
-                                yield return ContinuousController.instance.StartCoroutine(card.PermanentOfThisCard().AddDigivolutionCardsBottom(trashCards, info.cardEffect));
+                                secuirtyCards.Add(cardSource);
+                                addedCards.Add(cardSource);
                             }
+                        }
 
-                            if (secuirtyCards.Count >= 1)
+                        if (underTamerCards.Count >= 1)
+                        {
+                            yield return ContinuousController.instance.StartCoroutine(card.PermanentOfThisCard().AddDigivolutionCardsBottom(underTamerCards, info.cardEffect));
+                        }
+
+                        if (digimonPermanents.Count >= 1)
+                        {
+                            foreach (Permanent digimonPermanent in digimonPermanents)
                             {
-                                yield return ContinuousController.instance.StartCoroutine(card.PermanentOfThisCard().AddDigivolutionCardsBottom(secuirtyCards, info.cardEffect));
+                                yield return ContinuousController.instance.StartCoroutine(new IPlacePermanentToDigivolutionCards(new List<Permanent[]>() { new Permanent[] { digimonPermanent, card.PermanentOfThisCard() } }, false, info.cardEffect).PlacePermanentToDigivolutionCards());
                             }
                         }
 
-                        yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().ShowCardEffect2(addedCards, "Digivolution Cards", true, true));
+                        if (trashCards.Count >= 1)
+                        {
+                            yield return ContinuousController.instance.StartCoroutine(card.PermanentOfThisCard().AddDigivolutionCardsBottom(trashCards, info.cardEffect));
+                        }
+
+                        if (secuirtyCards.Count >= 1)
+                        {
+                            yield return ContinuousController.instance.StartCoroutine(card.PermanentOfThisCard().AddDigivolutionCardsBottom(secuirtyCards, info.cardEffect));
+                        }
                     }
+
+                    yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().ShowCardEffect2(addedCards, "Digivolution Cards", true, true));
                 }
             }
         }
+
+        addDigivolutionCardInfos = new List<AddDigivolutionCardsInfo>();
+
         yield return null;
     }
     #endregion