83 lines
2.5 KiB
C#
83 lines
2.5 KiB
C#
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,
|
|
}
|
|
|
|
}
|