using System.Collections; using System.Collections.Generic; using UnityEngine; using TcgEngine.Gameplay; namespace TcgEngine { //Sends the target card to a pile of your choice (deck/discard/hand) //Dont use to send to board since it needs a slot, use EffectPlay instead to send to board //Also dont send to discard from the board because it wont trigger OnKill effects, use EffectDestroy instead [CreateAssetMenu(fileName = "effect", menuName = "TcgEngine/Effect/SendPile", order = 10)] public class EffectSendPile : EffectData { public PileType pile; public override void DoEffect(GameLogic logic, AbilityData ability, Card caster, Card target) { Game data = logic.GetGameData(); Player player = data.GetPlayer(target.player_id); if (pile == PileType.Deck) { player.RemoveCardFromAllGroups(target); player.cards_deck.Add(target); target.Clear(); } if (pile == PileType.Hand) // 卡牌回到手牌 { player.RemoveCardFromAllGroups(target); player.cards_hand.Add(target); target.Clear(); // 清除卡牌状态 } if (pile == PileType.Hand_keep) // 卡牌回到手牌 但是不清除卡牌状态 { player.RemoveCardFromAllGroups(target); player.cards_hand.Add(target); if (target.player_id == caster.player_id) { Debug.Log("这是我的卡牌" + target.player_id + " " + caster.player_id); target.Clear(); // 清除卡牌状态 } else { Debug.Log("这是敌方的卡牌" + target.player_id + " " + caster.player_id); // 这是敌方的卡牌 } } if (pile == PileType.Discard) { player.RemoveCardFromAllGroups(target); player.cards_discard.Add(target); target.Clear(); } if (pile == PileType.Temp) { player.RemoveCardFromAllGroups(target); player.cards_temp.Add(target); target.Clear(); } } } public enum PileType { None = 0, Board = 10, Hand = 20, Hand_keep = 25, Deck = 30, Discard = 40, Secret = 50, Equipped = 60, Temp = 90, } }