Browse Source

changed card kind data to list

Michael8818 5 tháng trước cách đây
mục cha
commit
a33cc818ea
31 tập tin đã thay đổi với 92 bổ sung248 xóa
  1. 2 2
      Assets/Editor/ConvertDigiEggCardKind.cs
  2. 2 2
      Assets/Editor/CsvLoader_CardEntity.cs
  3. 2 2
      Assets/Editor/Fixing Scripts/FindInconsistentCardType.cs
  4. 1 1
      Assets/Editor/Fixing Scripts/FindMissingAAs.cs
  5. 1 1
      Assets/Editor/Fixing Scripts/FixDigiEggCost.cs
  6. 1 1
      Assets/Editor/Fixing Scripts/FixErrataImages.cs
  7. 7 6
      Assets/Editor/JSONLoader_CardEntity.cs
  8. 2 2
      Assets/Resources/Fonts & Materials/CP_REVENGE SDF.asset
  9. 1 1
      Assets/Scripts/CardEffect/BT16/Red/BT16_015.cs
  10. 1 1
      Assets/Scripts/CardEffect/LM/Yellow/LM_020.cs
  11. 0 8
      Assets/Scripts/CardEffect/ST24.meta
  12. 0 8
      Assets/Scripts/CardEffect/ST24/Yellow.meta
  13. 0 121
      Assets/Scripts/CardEffect/ST24/Yellow/ST24_01.cs
  14. 0 11
      Assets/Scripts/CardEffect/ST24/Yellow/ST24_01.cs.meta
  15. 0 11
      Assets/Scripts/CardEffect/ST24/Yellow/ST24_04.cs.meta
  16. 5 5
      Assets/Scripts/Script/CEntity_Base.cs
  17. 4 4
      Assets/Scripts/Script/CardDistribution.cs
  18. 1 1
      Assets/Scripts/Script/CardObjectController.cs
  19. 3 3
      Assets/Scripts/Script/CardPrefab_CreateDeck.cs
  20. 5 5
      Assets/Scripts/Script/CardSource.cs
  21. 19 18
      Assets/Scripts/Script/ContinuousController.cs
  22. 1 1
      Assets/Scripts/Script/CreateNewDeckButton.cs
  23. 12 3
      Assets/Scripts/Script/DataBase.cs
  24. 2 2
      Assets/Scripts/Script/DeckBuildingRule.cs
  25. 4 4
      Assets/Scripts/Script/DeckData.cs
  26. 5 13
      Assets/Scripts/Script/DetailCard_DeckEditor.cs
  27. 1 1
      Assets/Scripts/Script/EditDeck.cs
  28. 4 4
      Assets/Scripts/Script/FilterCardList.cs
  29. 1 1
      Assets/Scripts/Script/JsonSerializedClass.cs
  30. 4 4
      Assets/Scripts/Script/OfficialCardListUtility.cs
  31. 1 1
      Assets/Scripts/Script/TurnStateMachine.cs

+ 2 - 2
Assets/Editor/ConvertDigiEggCardKind.cs

@@ -13,11 +13,11 @@ public class ConvertDigiEggCardKind : MonoBehaviour
 
         foreach (CEntity_Base cEntity_Base in List)
         {
-            if (cEntity_Base.cardKind == CardKind.Digimon)
+            if (cEntity_Base.cardKind.Contains(CardKind.Digimon))
             {
                 if (cEntity_Base.Level == 2)
                 {
-                    cEntity_Base.cardKind = CardKind.DigiEgg;
+                    cEntity_Base.cardKind = new List<CardKind> { CardKind.DigiEgg };
                     EditorUtility.SetDirty(cEntity_Base);
                     AssetDatabase.SaveAssetIfDirty(cEntity_Base);
                 }

+ 2 - 2
Assets/Editor/CsvLoader_CardEntity.cs

@@ -142,7 +142,7 @@ public class CsvLoader_CardEntity : Editor
 
                 OfficialCardListUtility.AttachCardData(cardEntity, CardDatas_JPN, CardDatas_ENG, ref evoCosts_level, ref evoCosts_memory);
 
-                if (cardEntity.cardKind == CardKind.Digimon)
+                if (cardEntity.cardKind.Contains(CardKind.Digimon))
                 {
                     if (evoCosts_level.Count >= 1)
                     {
@@ -326,7 +326,7 @@ public class CsvLoader_CardEntity : Editor
                 string folderName_SetID = $"{cardEntity.SetID}";
                 string folderName_CardColor = $"{DataBase.CardColorNameDictionary[cardEntity.cardColors[0]]}";
                 folderName_CardColor = char.ToUpper(folderName_CardColor[0]) + folderName_CardColor.Substring(1);
-                string folderName_CardKind = $"{DataBase.CardKindENNameDictionary[cardEntity.cardKind]}";
+                string folderName_CardKind = $"{DataBase.CardKindENNameDictionary[cardEntity.cardKind[0]]}";
 
                 string folderPath = $"Assets/CardBaseEntity/{folderName_SetID}/{folderName_CardColor}/{folderName_CardKind}";
 

+ 2 - 2
Assets/Editor/Fixing Scripts/FindInconsistentCardType.cs

@@ -30,12 +30,12 @@ namespace DCGO.Tools.Repair{
             {
                 if(card.Level == 2)
                 {
-                    if(card.cardKind != CardKind.DigiEgg)
+                    if(!card.cardKind.Contains(CardKind.DigiEgg))
                         Debug.Log($"Mismatched Type (Egg): {card.CardSprite} - {card.cardColors[0]}");
                 }
                 else if (card.Level > 2)
                 {
-                    if (card.cardKind != CardKind.Digimon)
+                    if (!card.cardKind.Contains(CardKind.Digimon))
                         Debug.Log($"Mismatched Type (Digimon): {card.CardSprite} - {card.cardColors[0]}");
                 }
             }

+ 1 - 1
Assets/Editor/Fixing Scripts/FindMissingAAs.cs

@@ -61,7 +61,7 @@ namespace DCGO.Tools
             string folderName_CardColor = $"{DataBase.CardColorNameDictionary[GetCardColors(data.color)[0]]}";
             folderName_CardColor = char.ToUpper(folderName_CardColor[0]) + folderName_CardColor.Substring(1);
 
-            string folderName_CardKind = $"{DataBase.CardKindENNameDictionary[DictionaryUtility.GetCardKind(data.cardType.Replace("-", ""), DataBase.CardKindENNameDictionary)]}";
+            string folderName_CardKind = $"{DataBase.CardKindENNameDictionary[DictionaryUtility.GetCardKind(data.cardType.Replace("-", ""), DataBase.CardKindENNameDictionary)[0]]}";
             string folderPath = $"Assets/CardBaseEntity/{folderName_SetID}/{folderName_CardColor}/{folderName_CardKind}";
 
             if (Directory.Exists(folderPath))

+ 1 - 1
Assets/Editor/Fixing Scripts/FixDigiEggCost.cs

@@ -10,7 +10,7 @@ namespace DCGO.Tools.Repair{
         static void FixDigiEggPlayCost()
         {
             List<CEntity_Base> List = GetAsset.LoadAll<CEntity_Base>("Assets/CardBaseEntity/");
-            List = List.Filter(x => x.cardKind == CardKind.DigiEgg).Filter(x => x.PlayCost == 0);
+            List = List.Filter(x => x.cardKind.Contains(CardKind.DigiEgg)).Filter(x => x.PlayCost == 0);
 
             foreach (CEntity_Base card in List)
             {

+ 1 - 1
Assets/Editor/Fixing Scripts/FixErrataImages.cs

@@ -200,7 +200,7 @@ namespace DCGO.Tools.Repair
             string folderName_CardColor = $"{DataBase.CardColorNameDictionary[GetCardColors(data.color)[0]]}";
             folderName_CardColor = char.ToUpper(folderName_CardColor[0]) + folderName_CardColor.Substring(1);
 
-            string folderName_CardKind = $"{DataBase.CardKindENNameDictionary[DictionaryUtility.GetCardKind(data.cardType.Replace("-", ""), DataBase.CardKindENNameDictionary)]}";
+            string folderName_CardKind = $"{DataBase.CardKindENNameDictionary[DictionaryUtility.GetCardKind(data.cardType.Replace("-", ""), DataBase.CardKindENNameDictionary)[0]]}";
             string folderPath = $"Assets/CardBaseEntity/{folderName_SetID}/{folderName_CardColor}/{folderName_CardKind}";
             string filePath = $"{folderPath}/{fileName}".Trim().Replace("\t", "").Replace("\n", "").Replace("\r", "").Replace(" ", "");
 

+ 7 - 6
Assets/Editor/JSONLoader_CardEntity.cs

@@ -126,7 +126,7 @@ namespace DCGO.CardEntities
             Debug.Log($"creating: {card.name.english} - {card.cardType}");
             // CardEntity‚ instance created
             CEntity_Base cardEntity = CreateInstance<CEntity_Base>();
-
+            
             cardEntity.cardColors = GetCardColors(card.color);
 
             cardEntity.PlayCost = intParse(card.playCost);
@@ -160,14 +160,15 @@ namespace DCGO.CardEntities
             cardEntity.LinkRequirement = card.linkRequirement;
 
             if(!card.dualEffect.IsNullOrEmpty())
-                cardEntity.dualEffect = GetName(card.name.english, true);
+                cardEntity.dualEffect = GetName(card.name.english, false);
 
-            cardEntity.OptionCardColorRequirements = GetCardColors(card.optionCardColourRequirment);
+            Debug.Log(card.optionCardColourRequirement);
+            cardEntity.OptionCardColorRequirements = GetCardColors(card.optionCardColourRequirement);
             cardEntity.OptionEffect = card.optionCardEffect;
 
             cardEntity.name = cardEntity.CardSpriteName.Replace("-Errata","").Replace("-","_");
 
-            if (cardEntity.cardKind == CardKind.DigiEgg && cardEntity.PlayCost == 0)
+            if (cardEntity.cardKind.Contains(CardKind.DigiEgg) && cardEntity.PlayCost == 0)
                 cardEntity.PlayCost = -1;
 
             if (!debugMode)
@@ -202,7 +203,7 @@ namespace DCGO.CardEntities
             string folderName_CardColor = entity.cardColors.Count > 0 ? $"{DataBase.CardColorNameDictionary[entity.cardColors[0]]}" : "Unknown";
             folderName_CardColor = char.ToUpper(folderName_CardColor[0]) + folderName_CardColor.Substring(1);
 
-            string folderName_CardKind = $"{DataBase.CardKindENNameDictionary[entity.cardKind]}";
+            string folderName_CardKind = $"{DataBase.CardKindENNameDictionary[entity.cardKind[0]]}";
             string folderPath = $"Assets/CardBaseEntity/{folderName_SetID}/{folderName_CardColor}/{folderName_CardKind}";
             string filePath = $"{folderPath}/{fileName}".Trim().Replace("\t", "").Replace("\n", "").Replace("\r", "").Replace(" ", "");
 
@@ -450,7 +451,7 @@ namespace DCGO.CardEntities
         List<CardColor> GetCardColors(string colors)
         {
             List<CardColor> cardColors = new List<CardColor>();
-
+            Debug.Log(colors);
             foreach (string cardColorName in colors.Split("/"))
             {
                 foreach (string cardColorNameValues in DataBase.CardColorNameDictionary.Values)

+ 2 - 2
Assets/Resources/Fonts & Materials/CP_REVENGE SDF.asset

@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:8a1944b642579d0336ca57a49ecbf8258c51dd9e456eb8c0014772691363686b
-size 578731
+oid sha256:e854c46a743e9f0add7540572eee2dab0bdd4ab942f6d578eb3e1f594b44311c
+size 581622

+ 1 - 1
Assets/Scripts/CardEffect/BT16/Red/BT16_015.cs

@@ -136,7 +136,7 @@ namespace DCGO.CardEffects.BT16
 
                 bool CanPlayTargetCondition(CardSource cardSource)
                 {
-                    if (cardSource.CardKind == CardKind.Digimon)
+                    if (cardSource.CardKinds.Contains(CardKind.Digimon))
                     {
                         if (cardSource.HasDP && cardSource.CardDP <= 11000)
                         {

+ 1 - 1
Assets/Scripts/CardEffect/LM/Yellow/LM_020.cs

@@ -236,7 +236,7 @@ namespace DCGO.CardEffects.LM
                     {
                         GManager.instance.commandText.CloseCommandText();
 
-                        if (revealedCards[0].CardKind.Equals(selectedCategory))
+                        if (revealedCards[0].CardKinds.Contains(selectedCategory))
                         {
                             CanNotAffectedClass canNotAffectedClass = new CanNotAffectedClass();
                             canNotAffectedClass.SetUpICardEffect($"Isn't affected by opponent's {selectedCategory}'s effects", CanUseCondition, card);

+ 0 - 8
Assets/Scripts/CardEffect/ST24.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: b5e76d182dc87604b8faf0f5e2bb3d81
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
Assets/Scripts/CardEffect/ST24/Yellow.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 0e073c22ea5e5944799727a490c4bf17
-folderAsset: yes
-DefaultImporter:
-  externalObjects: {}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 121
Assets/Scripts/CardEffect/ST24/Yellow/ST24_01.cs

@@ -1,121 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using System.Linq;
-
-// Koromon
-namespace DCGO.CardEffects.ST24
-{
-    public class ST24_01 : CEntity_Effect
-    {
-        public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
-        {
-            List<ICardEffect> cardEffects = new List<ICardEffect>();
-
-            #region Inherit
-
-            if (timing == EffectTiming.OnAllyAttack)
-            {
-                ActivateClass activateClass = new ActivateClass();
-                activateClass.SetUpICardEffect("Digivolve into [DATA SQUAD] for 2 less", CanUseCondition, card);
-                activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, true, EffectDescription());
-                activateClass.SetIsInheritedEffect(true);
-                activateClass.SetHashString("ST24_01_WA");
-                cardEffects.Add(activateClass);
-
-                string EffectDescription() => "[When Attacking] [Once Per Turn] By trashing the bottom face-down card from under any of your Tamers, this Digimon may digivolve into a [DATA SQUAD] trait Digimon card in the hand with the cost reduced by 2.";
-
-                bool CanUseCondition(Hashtable hashtable)
-                {
-                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card)
-                        && CardEffectCommons.CanTriggerOnAttack(hashtable, card);
-                }
-
-                bool CanActivateCondition(Hashtable hashtable)
-                {
-                    return CardEffectCommons.IsExistOnBattleAreaDigimon(card)
-                        && CardEffectCommons.HasMatchConditionOwnersPermanent(card, CanSelectPermanentCondition);
-                }
-
-                bool CanSelectCardCondition(CardSource cardSource)
-                {
-                    return cardSource.EqualsTraits("DATA SQUAD");
-                }
-
-                bool CanSelectPermanentCondition(Permanent permanent)
-                {
-                    return CardEffectCommons.IsPermanentExistsOnOwnerBattleArea(permanent, card)
-                        && permanent.IsTamer
-                        && permanent.HasFaceDownDigivolutionCards;
-                }
-
-                bool CanSelectTrashSourceCardCondition(CardSource cardSource)
-                {
-                    return cardSource.IsFlipped 
-                        && !cardSource.CanNotTrashFromDigivolutionCards(activateClass);
-                }
-
-                IEnumerator ActivateCoroutine(Hashtable hashtable)
-                {
-                    Permanent selectedPermanent = null;
-
-                    if (CardEffectCommons.MatchConditionPermanentCount(CanSelectPermanentCondition) > 1)
-                    {
-                        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 tamer to trash a face down card from.", "The opponent is selecting 1 tamer to trash a face down card from.");
-
-                        yield return ContinuousController.instance.StartCoroutine(selectPermanentEffect.Activate());
-
-                        IEnumerator SelectPermanentCoroutine(Permanent permanent)
-                        {
-                            selectedPermanent = permanent;
-
-                            yield return null;
-                        }
-                    }
-                    else selectedPermanent = card.Owner.GetBattleAreaPermanents().FirstOrDefault();
-
-                    List<CardSource> selectedCards = new List<CardSource>();
-
-                    CardSource trashTargetCard = selectedPermanent.DigivolutionCards.Filter(CanSelectTrashSourceCardCondition)[^1];
-
-                    selectedCards.Add(trashTargetCard);
-
-                    yield return ContinuousController.instance.StartCoroutine(
-                        new ITrashDigivolutionCards(selectedPermanent, selectedCards, activateClass).TrashDigivolutionCards());
-
-                    if (CardEffectCommons.HasMatchConditionOwnersHand(card, CanSelectCardCondition))
-                    {
-                        yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.DigivolveIntoHandOrTrashCard(
-                            targetPermanent: card.PermanentOfThisCard(),
-                            cardCondition: CanSelectCardCondition,
-                            payCost: true,
-                            reduceCostTuple: (reduceCost: 2, reduceCostCardCondition: null),
-                            fixedCostTuple: null,
-                            ignoreDigivolutionRequirementFixedCost: -1,
-                            isHand: true,
-                            activateClass: activateClass,
-                            successProcess: null));
-                    }
-                }
-            }
-
-            #endregion
-
-            return cardEffects;
-        }
-    }
-}

+ 0 - 11
Assets/Scripts/CardEffect/ST24/Yellow/ST24_01.cs.meta

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

+ 0 - 11
Assets/Scripts/CardEffect/ST24/Yellow/ST24_04.cs.meta

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

+ 5 - 5
Assets/Scripts/Script/CEntity_Base.cs

@@ -22,7 +22,7 @@ public class CEntity_Base : ScriptableObject
     public List<string> Type_JPN = new List<string>();
     public List<string> Type_ENG = new List<string>();
     public string CardSpriteName = "";
-    public CardKind cardKind = CardKind.Digimon;
+    public List<CardKind> cardKind = new List<CardKind> { CardKind.Digimon };
     [TextArea] public string EffectDiscription_JPN = "";
     [TextArea] public string EffectDiscription_ENG = "";
     [TextArea] public string InheritedEffectDiscription_JPN = "";
@@ -235,7 +235,7 @@ public class CEntity_Base : ScriptableObject
     #endregion
 
     #region whether it is permanent card
-    public bool IsPermanent => cardKind == CardKind.Digimon || cardKind == CardKind.Tamer || cardKind == CardKind.DigiEgg;
+    public bool IsPermanent => cardKind.Contains(CardKind.Digimon) || cardKind.Contains(CardKind.Tamer) || cardKind.Contains(CardKind.DigiEgg);
     #endregion
 
     #region �J�[�hIndex���f�b�L�R�[�h�ɗp���镶����ɕϊ�(256�i��)
@@ -323,7 +323,7 @@ public class CEntity_Base : ScriptableObject
                 return false;
             }
 
-            if (cardKind != CardKind.Digimon && cardKind != CardKind.DigiEgg)
+            if (!cardKind.Contains(CardKind.Digimon) && !cardKind.Contains(CardKind.DigiEgg))
             {
                 return false;
             }
@@ -338,11 +338,11 @@ public class CEntity_Base : ScriptableObject
     #endregion
 
     #region Wheter the card has play cost
-    public bool HasPlayCost => cardKind != CardKind.Option && PlayCost >= 0;
+    public bool HasPlayCost => !cardKind.Contains(CardKind.Option) && PlayCost >= 0;
     #endregion
 
     #region Wheter the card has use cost
-    public bool HasUseCost => cardKind == CardKind.Option && PlayCost >= 0;
+    public bool HasUseCost => cardKind.Contains(CardKind.Option) && PlayCost >= 0;
     #endregion
 }
 public enum CardKind

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

@@ -41,10 +41,10 @@ public class CardDistribution : MonoBehaviour
 
     public void Init()
     {
-        digitama.CardCondition = (cEntity_Base) => cEntity_Base.cardKind == CardKind.DigiEgg;
-        digimon.CardCondition = (cEntity_Base) => cEntity_Base.cardKind == CardKind.Digimon;
-        tamer.CardCondition = (cEntity_Base) => cEntity_Base.cardKind == CardKind.Tamer;
-        option.CardCondition = (cEntity_Base) => cEntity_Base.cardKind == CardKind.Option;
+        digitama.CardCondition = (cEntity_Base) => cEntity_Base.cardKind.Contains(CardKind.DigiEgg);
+        digimon.CardCondition = (cEntity_Base) => cEntity_Base.cardKind.Contains(CardKind.Digimon);
+        tamer.CardCondition = (cEntity_Base) => cEntity_Base.cardKind.Contains(CardKind.Tamer);
+        option.CardCondition = (cEntity_Base) => cEntity_Base.cardKind.Contains(CardKind.Option);
         level2.CardCondition = (cEntity_Base) => cEntity_Base.Level == 2;
         level3.CardCondition = (cEntity_Base) => cEntity_Base.Level == 3;
         level4.CardCondition = (cEntity_Base) => cEntity_Base.Level == 4;

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

@@ -62,7 +62,7 @@ public class CardObjectController : MonoBehaviour
 
                 foreach (CEntity_Base cEntity_Base in ContinuousController.instance.CardList)
                 {
-                    if (cEntity_Base.cardKind != CardKind.DigiEgg)
+                    if (!cEntity_Base.cardKind.Contains(CardKind.DigiEgg))
                     {
                         mainDeckCandidates.Add(cEntity_Base);
                     }

+ 3 - 3
Assets/Scripts/Script/CardPrefab_CreateDeck.cs

@@ -242,7 +242,7 @@ public class CardPrefab_CreateDeck : MonoBehaviour
 
             if (LevelIcons != null)
             {
-                if ((cEntity_Base.cardKind == CardKind.Digimon || cEntity_Base.cardKind == CardKind.DigiEgg) && cEntity_Base.Level >= 1)
+                if ((cEntity_Base.cardKind.Contains(CardKind.Digimon) || cEntity_Base.cardKind.Contains(CardKind.DigiEgg)) && cEntity_Base.Level >= 1)
                 {
                     if (LevelIcons.Count >= 1)
                     {
@@ -278,7 +278,7 @@ public class CardPrefab_CreateDeck : MonoBehaviour
 
             if (EvoCostIcons != null)
             {
-                if (cEntity_Base.cardKind == CardKind.Digimon)
+                if (cEntity_Base.cardKind.Contains(CardKind.Digimon))
                 {
                     if (EvoCostIcons.Count >= 1)
                     {
@@ -452,7 +452,7 @@ public class CardPrefab_CreateDeck : MonoBehaviour
 
         if (cEntity_Base != null)
         {
-            if (cEntity_Base.cardKind == CardKind.DigiEgg)
+            if (cEntity_Base.cardKind.Contains(CardKind.DigiEgg))
             {
                 if (cEntity_Base.SameCardIDCount(deckData.DigitamaDeckCards()) >= cEntity_Base.MaxCountInDeck)
                 {

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

@@ -3166,25 +3166,25 @@ public class CardSource : MonoBehaviour
 
     #region whether this card is Digimon
 
-    public bool IsDigimon => CardKind == CardKind.Digimon;
+    public bool IsDigimon => CardKinds.Contains(CardKind.Digimon);
 
     #endregion
 
     #region whether this card is DigiEgg
 
-    public bool IsDigiEgg => CardKind == CardKind.DigiEgg;
+    public bool IsDigiEgg => CardKinds.Contains(CardKind.DigiEgg);
 
     #endregion
 
     #region whether this card is Tamer
 
-    public bool IsTamer => CardKind == CardKind.Tamer;
+    public bool IsTamer => CardKinds.Contains(CardKind.Tamer);
 
     #endregion
 
     #region whether this card is Option
 
-    public bool IsOption => CardKind == CardKind.Option;
+    public bool IsOption => CardKinds.Contains(CardKind.Option);
 
     #endregion
 
@@ -3249,7 +3249,7 @@ public class CardSource : MonoBehaviour
 
     #region Card Kind
 
-    public CardKind CardKind => _cEntity_Base.cardKind;
+    public List<CardKind> CardKinds => _cEntity_Base.cardKind;
 
     #endregion
 

+ 19 - 18
Assets/Scripts/Script/ContinuousController.cs

@@ -143,7 +143,7 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>() { "種族不明" },
             Type_ENG = new List<string>() { "Unidentified" },
             CardSpriteName = "BT2-082-token",
-            cardKind = CardKind.Digimon,
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 3000,
         };
 
@@ -163,7 +163,7 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>(),
             Type_ENG = new List<string>(),
             CardSpriteName = "BT14-018-token-red",
-            cardKind = CardKind.Digimon,
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 6000,
             CardEffectClassName = "BT4_038"
         };
@@ -184,7 +184,7 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>(),
             Type_ENG = new List<string>(),
             CardSpriteName = "BT14-018-token-yellow",
-            cardKind = CardKind.Digimon,
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 6000,
             CardEffectClassName = "BT1_031"
         };
@@ -205,7 +205,7 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>(),
             Type_ENG = new List<string>(),
             CardSpriteName = "EX5-058-token",
-            cardKind = CardKind.Digimon,
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 3000,
             CardEffectClassName = "EX5_058_token"
         };
@@ -226,7 +226,7 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>() { "ダークアニマル" },
             Type_ENG = new List<string>() { "Dark Animal" },
             CardSpriteName = "LM-018-token",
-            cardKind = CardKind.Digimon,
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 3000,
         };
 
@@ -246,7 +246,7 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>(),
             Type_ENG = new List<string>(),
             CardSpriteName = "BT16-052-token",
-            cardKind = CardKind.Digimon,
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 1000,
             CardEffectClassName = "BT16_052_token"
         };
@@ -267,7 +267,7 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>(),
             Type_ENG = new List<string>(),
             CardSpriteName = "EX7-030-token",
-            cardKind = CardKind.Digimon,
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 3000,
             CardEffectClassName = "EX7_030_token"
         };
@@ -288,7 +288,7 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>(),
             Type_ENG = new List<string>(),
             CardSpriteName = "EX7-030-token",
-            cardKind = CardKind.Digimon,
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 3000,
             CardEffectClassName = "P_165_token"
         };
@@ -309,7 +309,7 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>(),
             Type_ENG = new List<string>(),
             CardSpriteName = "EX7-058-token",
-            cardKind = CardKind.Digimon,
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 5000,
             CardEffectClassName = "EX7_058_token"
         };
@@ -330,7 +330,7 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>(),
             Type_ENG = new List<string>(),
             CardSpriteName = "EX8-037-token",
-            cardKind = CardKind.Digimon,
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 9000,
             CardEffectClassName = "EX8_037_token"
         };
@@ -351,7 +351,7 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>(),
             Type_ENG = new List<string>(),
             CardSpriteName = "BT19-091-token-red",
-            cardKind = CardKind.Digimon,
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 6000
         };
 
@@ -371,7 +371,8 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>(),
             Type_ENG = new List<string>(),
             CardSpriteName = "BT19-091-token-yellow",
-            cardKind = CardKind.Digimon,
+            CardSpriteName = "BT19-091-token",
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 6000
         };
 
@@ -391,7 +392,7 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>(),
             Type_ENG = new List<string>(),
             CardSpriteName = "BT19-091-token-green",
-            cardKind = CardKind.Digimon,
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 6000
         };
 
@@ -411,7 +412,7 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>(),
             Type_ENG = new List<string>(),
             CardSpriteName = "BT19-040-token",
-            cardKind = CardKind.Digimon,
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 6000,
             CardEffectClassName = "BT19_040_token"
         };
@@ -432,7 +433,7 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>(),
             Type_ENG = new List<string>(),
             CardSpriteName = "BT20-017-token",
-            cardKind = CardKind.Digimon,
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 6000,
             CardEffectClassName = "BT20_017_token"
         };
@@ -453,7 +454,7 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>(),
             Type_ENG = new List<string>(),
             CardSpriteName = "BT23-057-token",
-            cardKind = CardKind.Digimon,
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 6000,
             CardEffectClassName = "BT23_057_token"
         };
@@ -476,7 +477,7 @@ public class ContinuousController : MonoBehaviour
             Type_JPN = new List<string>(),
             Type_ENG = new List<string>(),
             CardSpriteName = "BT21-029-token",
-            cardKind = CardKind.Digimon,
+            cardKind = new List<CardKind> { CardKind.Digimon },
             DP = 3000,
             CardEffectClassName = "BT21_029_token"
         };
@@ -685,7 +686,7 @@ public class ContinuousController : MonoBehaviour
 
         foreach (CEntity_Base cEntity_Base in AllDeckCards)
         {
-            if (cEntity_Base.cardKind == CardKind.DigiEgg)
+            if (cEntity_Base.cardKind.Contains(CardKind.DigiEgg))
             {
                 digitamaDeckCards.Add(cEntity_Base);
             }

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

@@ -68,7 +68,7 @@ public class CreateNewDeckButton : MonoBehaviour
 
         foreach (CEntity_Base cEntity_Base in AllDeckCards)
         {
-            if (cEntity_Base.cardKind == CardKind.DigiEgg)
+            if (cEntity_Base.cardKind.Contains(CardKind.DigiEgg))
             {
                 digitamaDeckCards.Add(cEntity_Base);
             }

+ 12 - 3
Assets/Scripts/Script/DataBase.cs

@@ -905,11 +905,20 @@ public class DictionaryUtility
         return pokemonType;
     }
 
-    public static CardKind GetCardKind(string CardKindName, Dictionary<CardKind, string> CardKindNameDictionary)
+    public static List<CardKind> GetCardKind(string CardKindName, Dictionary<CardKind, string> CardKindNameDictionary)
     {
-        CardKind cardKind = CardKindName.IsNullOrEmpty() ? CardKind.Tamer : CardKindNameDictionary.First(x => x.Value == CardKindName).Key;
+        List<CardKind> Typing = new List<CardKind>();
+        string[] Types = CardKindName.Split("/");
 
-        return cardKind;
+        foreach(string Type in Types)
+        {
+            CardKind cardKind = Type.IsNullOrEmpty() ? CardKind.Tamer : CardKindNameDictionary.First(x => x.Value == Type).Key;
+
+            Typing.Add(cardKind);
+        }
+        
+
+        return Typing;
     }
 
     public static Rarity GetEvoStage(string EvoStageName, Dictionary<Rarity, string> EvoStageNameDictionary)

+ 2 - 2
Assets/Scripts/Script/DeckBuildingRule.cs

@@ -30,7 +30,7 @@ public class DeckBuildingRule : MonoBehaviour
 
         foreach (CEntity_Base cEntity_Base in modifiedDeck)
         {
-            if (cEntity_Base.cardKind != CardKind.DigiEgg)
+            if (!cEntity_Base.cardKind.Contains(CardKind.DigiEgg))
             {
                 modifiedDeckCards.Add(cEntity_Base);
             }
@@ -145,7 +145,7 @@ public class DeckBuildingRule : MonoBehaviour
 
     public static bool CanAddCard(CEntity_Base cEntity_Base, DeckData deckData)
     {
-        if (cEntity_Base.cardKind == CardKind.DigiEgg)
+        if (cEntity_Base.cardKind.Contains(CardKind.DigiEgg))
         {
             if (cEntity_Base.SameCardIDCount(deckData.DigitamaDeckCards()) >= cEntity_Base.MaxCountInDeck)
             {

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

@@ -327,7 +327,7 @@ public class DeckData
     #region カードを追加する
     public void AddCard(CEntity_Base cEntity_Base)
     {
-        if (cEntity_Base.cardKind == CardKind.DigiEgg)
+        if (cEntity_Base.cardKind.Contains(CardKind.DigiEgg))
         {
             AddDigitamaDeckCard(cEntity_Base);
         }
@@ -342,7 +342,7 @@ public class DeckData
     #region カードを除く
     public void RemoveCard(CEntity_Base cEntity_Base)
     {
-        if (cEntity_Base.cardKind == CardKind.DigiEgg)
+        if (cEntity_Base.cardKind.Contains(CardKind.DigiEgg))
         {
             RemoveDigitamaDeckCard(cEntity_Base);
         }
@@ -474,7 +474,7 @@ public class DeckData
 
         DeckCards1 = DeckCards1
             .OrderBy(value => value.SetID)
-            .ThenBy(value => Array.IndexOf(DataBase.cardKinds, value.CardKind))
+            .ThenBy(value => Array.IndexOf(DataBase.cardKinds, value.CardKinds))
             .ThenBy(value => Array.IndexOf(DataBase.cardColors, value.BaseCardColorsFromEntity[0]))
             .ThenByDescending(value => value.BaseEvoCostsFromEntity.Count)
             .ThenByDescending(value => value.CardDP)
@@ -715,7 +715,7 @@ public class DeckData
 
         foreach (CEntity_Base cEntity_Base in AllDeckCards())
         {
-            if (cEntity_Base.cardKind != CardKind.DigiEgg)
+            if (!cEntity_Base.cardKind.Contains(CardKind.DigiEgg))
             {
                 deckCards.Add(cEntity_Base);
             }

+ 5 - 13
Assets/Scripts/Script/DetailCard_DeckEditor.cs

@@ -151,7 +151,7 @@ public class DetailCard_DeckEditor : MonoBehaviour
 
             if (_playCostTitleText != null)
             {
-                if (cEntity_Base.cardKind != CardKind.Option && !cEntity_Base.IsDualCard)
+                if (!cEntity_Base.cardKind.Contains(CardKind.Option) && !cEntity_Base.IsDualCard)
                 {
                     _playCostTitleText.text = LocalizeUtility.GetLocalizedString(
                         EngMessage: "PlayCost",
@@ -176,7 +176,7 @@ public class DetailCard_DeckEditor : MonoBehaviour
         }
 
         //DP
-        if (cEntity_Base.cardKind == CardKind.Digimon)
+        if (cEntity_Base.cardKind.Contains(CardKind.DigiEgg))
         {
             DPText.transform.parent.gameObject.SetActive(true);
             DPText.text = $"{cEntity_Base.DP}";
@@ -486,19 +486,11 @@ public class DetailCard_DeckEditor : MonoBehaviour
                 }
             }
 
-            else if (cEntity_Base.HasInhetitedEffect)
+            else if (cEntity_Base.IsDualCard)
             {
-                if (ContinuousController.instance.language == Language.ENG)
-                {
-                    alternativeEffectTitleText.text = $"Dual Card";
-                    alternativeEffectDiscriptionText.text = DataBase.ReplaceToASCII(cEntity_Base.InheritedEffectDiscription_ENG);
-                }
+                alternativeEffectTitleText.text = $"{cEntity_Base.dualEffect}";
+                alternativeEffectDiscriptionText.text = DataBase.ReplaceToASCII(cEntity_Base.OptionEffect);
 
-                else
-                {
-                    alternativeEffectTitleText.text = $"進化元効果";
-                    alternativeEffectDiscriptionText.text = DataBase.ReplaceToASCII(cEntity_Base.InheritedEffectDiscription_JPN);
-                }
             }
 
             effectDiscriptionText.fontSizeMax = 25;

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

@@ -1200,7 +1200,7 @@ public class EditDeck : MonoBehaviour
     #region remove cards from deck
     public IEnumerator RemoveDeckCards(CEntity_Base cEntity_Base)
     {
-        if (cEntity_Base.cardKind == CardKind.DigiEgg)
+        if (cEntity_Base.cardKind.Contains(CardKind.DigiEgg))
         {
             if (EdittingDeckData.DigitamaDeckCards().Count((cardData) => cardData.CardID == cEntity_Base.CardID) <= 0)
             {

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

@@ -222,28 +222,28 @@ public class FilterCardList : MonoBehaviour
                         switch (cardKindDropdown.value)
                         {
                             case 1:
-                                if (cEntity_Base.cardKind == CardKind.Digimon)
+                                if (cEntity_Base.cardKind.Contains(CardKind.Digimon))
                                 {
                                     OK_CardKind = true;
                                 }
                                 break;
 
                             case 2:
-                                if (cEntity_Base.cardKind == CardKind.DigiEgg)
+                                if (cEntity_Base.cardKind.Contains(CardKind.DigiEgg))
                                 {
                                     OK_CardKind = true;
                                 }
                                 break;
 
                             case 3:
-                                if (cEntity_Base.cardKind == CardKind.Tamer)
+                                if (cEntity_Base.cardKind.Contains(CardKind.Tamer))
                                 {
                                     OK_CardKind = true;
                                 }
                                 break;
 
                             case 4:
-                                if (cEntity_Base.cardKind == CardKind.Option)
+                                if (cEntity_Base.cardKind.Contains(CardKind.Option))
                                 {
                                     OK_CardKind = true;
                                 }

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

@@ -41,7 +41,7 @@ namespace DCGO.CardEntities
         public string linkRequirement;
         public CardName name;
         public string notes;
-        public string optionCardColourRequirment;
+        public string optionCardColourRequirement;
         public string optionCardEffect;
         public string playCost;
         public string rarity;

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

@@ -279,7 +279,7 @@ public class OfficialCardListUtility
                     }
 
                     //Inherited Effect Description
-                    if (targetCardData[i].Contains("<dt>�i��������</dt>") || (!(cEntity_Base.cardKind == CardKind.Digimon && hasAceName) && targetCardData[i].Contains("<dt>下段テキスト</dt>")))
+                    if (targetCardData[i].Contains("<dt>�i��������</dt>") || (!(cEntity_Base.cardKind.Contains(CardKind.Digimon) && hasAceName) && targetCardData[i].Contains("<dt>下段テキスト</dt>")))
                     {
                         targetCardData[i + 1] = targetCardData[i + 1].Replace("<dd>", "").Replace("</dd>", "");
 
@@ -290,7 +290,7 @@ public class OfficialCardListUtility
                     }
 
                     //Security Effect Description
-                    if (targetCardData[i].Contains("<dt>�Z�L�����e�B����</dt>") || (!(cEntity_Base.cardKind == CardKind.Digimon || cEntity_Base.cardKind == CardKind.DigiEgg) && targetCardData[i].Contains("<dt>下段テキスト</dt>")))
+                    if (targetCardData[i].Contains("<dt>�Z�L�����e�B����</dt>") || (!(cEntity_Base.cardKind.Contains(CardKind.Digimon) || cEntity_Base.cardKind.Contains(CardKind.DigiEgg)) && targetCardData[i].Contains("<dt>下段テキスト</dt>")))
                     {
                         targetCardData[i + 1] = targetCardData[i + 1].Replace("<dd>", "").Replace("</dd>", "");
 
@@ -301,7 +301,7 @@ public class OfficialCardListUtility
                     }
 
                     //Overflow Memory
-                    if (cEntity_Base.cardKind == CardKind.Digimon && hasAceName && targetCardData[i].Contains("<dt>下段テキスト</dt>"))
+                    if (cEntity_Base.cardKind.Contains(CardKind.Digimon) && hasAceName && targetCardData[i].Contains("<dt>下段テキスト</dt>"))
                     {
                         if (targetCardData[i + 1].Contains("overflow-5"))
                         {
@@ -414,7 +414,7 @@ public class OfficialCardListUtility
                     }
 
                     //Inherited Effect Description
-                    if (targetCardData[i].Contains("<dt>InheritedEffect</dt>") && !(cEntity_Base.cardKind == CardKind.Digimon && cEntity_Base.IsACE))
+                    if (targetCardData[i].Contains("<dt>InheritedEffect</dt>") && !(cEntity_Base.cardKind.Contains(CardKind.Digimon) && cEntity_Base.IsACE))
                     {
                         targetCardData[i + 1] = targetCardData[i + 1].Replace("<dd>", "").Replace("</dd>", "");
 

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

@@ -1086,7 +1086,7 @@ public class TurnStateMachine : MonoBehaviourPunCallbacks
                                 }
 
                                 CanPlayCards = CanPlayCards
-                                    .OrderBy((value) => Array.IndexOf(DataBase.cardKinds, value.CardKind))
+                                    .OrderBy((value) => Array.IndexOf(DataBase.cardKinds, value.CardKinds))
                                     .ThenBy((value) => Array.IndexOf(new bool[] { true, false }, value.Owner.fieldCardFrames.Count((frame) => value.CanPlayCardTargetFrame(frame, true, null) && !frame.IsEmptyFrame()) >= 1))
                                     .ToList();