Parcourir la source

Implemented Training Keyword

mbunch_kascope il y a 1 an
Parent
commit
e554ad69c4

+ 4 - 2
Assets/CardEffect/EX9/Blue/EX9_015.cs

@@ -37,10 +37,12 @@ namespace DCGO.CardEffects.EX9
             #endregion
 
             #region Training
-            if (timing == EffectTiming.None)
+
+            if (timing == EffectTiming.OnDeclaration)
             {
-                // TODO Implement Training
+                cardEffects.Add(CardEffectFactory.TrainingEffect(card: card));
             }
+
             #endregion
 
             #region Inherit

+ 3 - 3
Assets/CardEffect/EX9/Blue/EX9_016.cs

@@ -28,12 +28,12 @@ namespace DCGO.CardEffects.EX9
             }
 
             #endregion
-            
+
             #region Training
 
-            if (timing == EffectTiming.None)
+            if (timing == EffectTiming.OnDeclaration)
             {
-                // TODO Implement Training
+                cardEffects.Add(CardEffectFactory.TrainingEffect(card: card));
             }
 
             #endregion

+ 2 - 2
Assets/CardEffect/EX9/Blue/EX9_017.cs

@@ -41,9 +41,9 @@ namespace DCGO.CardEffects.EX9
 
             #region Training
 
-            if (timing == EffectTiming.None)
+            if (timing == EffectTiming.OnDeclaration)
             {
-                // TODO Implement Training
+                cardEffects.Add(CardEffectFactory.TrainingEffect(card: card));
             }
 
             #endregion

+ 2 - 2
Assets/CardEffect/EX9/Red/EX9_008.cs

@@ -33,9 +33,9 @@ namespace DCGO.CardEffects.EX9
 
             #region Training
 
-            if (timing == EffectTiming.None)
+            if (timing == EffectTiming.OnDeclaration)
             {
-                // To be Implemented
+                cardEffects.Add(CardEffectFactory.TrainingEffect(card: card));
             }
 
             #endregion

+ 2 - 2
Assets/CardEffect/EX9/Red/EX9_009.cs

@@ -34,9 +34,9 @@ namespace DCGO.CardEffects.EX9
 
             #region Training
 
-            if (timing == EffectTiming.None)
+            if (timing == EffectTiming.OnDeclaration)
             {
-                // To be Implemented
+                cardEffects.Add(CardEffectFactory.TrainingEffect(card: card));
             }
 
             #endregion

+ 4 - 2
Assets/CardEffect/EX9/Red/EX9_010.cs

@@ -38,10 +38,12 @@ namespace DCGO.CardEffects.EX9
             #endregion
 
             #region Training
-            if (timing == EffectTiming.None)
+
+            if (timing == EffectTiming.OnDeclaration)
             {
-                // TODO Implement Training
+                cardEffects.Add(CardEffectFactory.TrainingEffect(card: card));
             }
+
             #endregion
 
             #region When Digivolving

+ 42 - 0
Assets/Scripts/CardEffectFactory/KeyWordEffects/Training.cs

@@ -0,0 +1,42 @@
+using System.Collections;
+using System.Collections.Generic;
+using System;
+using System.Linq;
+using UnityEngine;
+
+public partial class CardEffectFactory
+{
+    #region Trigger effect of [Training]
+    public static ActivateClass TrainingEffect(CardSource card)
+    {
+        ActivateClass activateClass = new ActivateClass();
+        activateClass.SetUpICardEffect("Training", CanUseCondition, card);
+        activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, DataBase.SaveEffectDiscription());
+
+        bool CanUseCondition(Hashtable hashtable)
+        {
+            return true;
+        }
+
+        bool CanActivateCondition(Hashtable hashtable)
+        {
+            return CardEffectCommons.CanActivateSuspendCostEffect(card, true);
+        }
+
+        IEnumerator ActivateCoroutine(Hashtable _hashtable)
+        {
+            Permanent thisPermanent = card.PermanentOfThisCard();
+
+            yield return ContinuousController.instance.StartCoroutine(new SuspendPermanentsClass(
+                    new List<Permanent>() { thisPermanent },
+                    CardEffectCommons.CardEffectHashtable(activateClass)).Tap());
+
+            if(card.Owner.LibraryCards.Count > 0)
+                yield return ContinuousController.instance.StartCoroutine(thisPermanent.AddDigivolutionCardsBottom(
+                            new List<CardSource> { card.Owner.LibraryCards[0] }, activateClass, isFacedown: true));
+        }
+
+        return activateClass;
+    }
+    #endregion
+}

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

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

+ 5 - 0
Assets/Scripts/DataBase.cs

@@ -534,6 +534,11 @@ public class DataBase : MonoBehaviour
         return $"<Overclock [{trait}]> (At the end of your turn, by deleting 1 of your Tokens or other [{trait}] trait Digimon, this Digimon attacks a player without suspending.)";
     }
 
+    public static string TrainingEffectDiscription()
+    {
+        return "<Training> (In the main phase, by suspending this Digimon, place your deck's top card face down as this Digimon's bottom digivolution card. This effect can also activate in the breeding area).";
+    }
+
     public static string DecodeEffectDiscription(CardColor color, int level)
     {
         string colorString = color switch