public override void OnUseCard()
        {
            base.OnUseCard();
            BattleUnitModel victim = this.card.target;

            if (victim != null)
            {
                BattleUnitBuf unitBufPlutoBarrier = new BattleUnitBuf_Barrier()
                {
                    Pluto = this.card.owner
                };
                victim.bufListDetail.AddBuf(unitBufPlutoBarrier);
            }
            List <BattleDiceCardModel> Cardlist = victim.allyCardDetail.GetAllDeck();
            BattleDiceCardModel        Card     = RandomUtil.SelectOne <BattleDiceCardModel>(Cardlist);

            Cardlist.Remove(Card);
            Card = this.owner.allyCardDetail.AddNewCard(Card.XmlData.id);
            Card.SetCurrentCost(0);
            Card.AddBuf(new Exhaust());
            Card = RandomUtil.SelectOne <BattleDiceCardModel>(Cardlist);
            Card = this.owner.allyCardDetail.AddNewCard(Card.XmlData.id);
            Card.SetCurrentCost(0);
            Card.AddBuf(new Exhaust());
        }
        public override void OnMakeBreakState(BattleUnitModel target)
        {
            base.OnMakeBreakState(target);
            if (target == null || target == this._owner || this._owner.faction != Faction.Player)
            {
                return;
            }
            this._owner.battleCardResultLog?.SetCreatureEffectSound("Creature/Scarecrow_Dead");
            List <BattleDiceCardModel> battleDiceCardModelList = new List <BattleDiceCardModel>();

            switch (this._owner.Book.ClassInfo.RangeType)
            {
            case EquipRangeType.Melee:
                battleDiceCardModelList = target.allyCardDetail.GetAllDeck().FindAll((Predicate <BattleDiceCardModel>)(x => x.GetSpec().Ranged == CardRange.Near));
                break;

            case EquipRangeType.Range:
                battleDiceCardModelList = target.allyCardDetail.GetAllDeck().FindAll((Predicate <BattleDiceCardModel>)(x => x.GetSpec().Ranged == CardRange.Far));
                break;

            case EquipRangeType.Hybrid:
                battleDiceCardModelList = target.allyCardDetail.GetAllDeck();
                break;
            }
            foreach (int index in MathUtil.Combination(2, battleDiceCardModelList.Count))
            {
                BattleDiceCardModel battleDiceCardModel = this._owner.allyCardDetail.AddNewCard(battleDiceCardModelList[index].GetID());
                battleDiceCardModel.XmlData.optionList.Add(CardOption.ExhaustOnUse);
                battleDiceCardModel.SetCurrentCost(battleDiceCardModel.GetOriginCost() - 2);
                battleDiceCardModel.AddBuf(new BattleDiceCardBuf_scarecrowCreated());
            }
        }