Exemplo n.º 1
0
    public void Operation(IDuel duel, Card card, LauchEffect effect, Group group = null)
    {
        GroupCardSelectBack d = delegate(Group val)
        {
            card.EffectDataGroup = val;

            normalDele d1 = delegate
            {
                Group      result = new Group();
                normalDele d2     = delegate
                {
                    List <Card> list     = result.ToList();
                    int         reduceLP = 0;
                    foreach (var item in list)
                    {
                        reduceLP += item.GetCurAfk();
                    }
                    duel.ReduceLP(reduceLP, card.controller, ComVal.reason_Effect, card, effect);
                    duel.FinishHandle();
                };
                duel.AddDelegate(d2, true);
                Group target = card.EffectDataGroup.GetFitlerGroup(Fiter1);
                result = duel.SendToGraveyard(ComVal.Area_Monster, target, card, ComVal.reason_EffectDestroy, effect);
            };
            duel.AddDelayAction(d1, ComVal.resetEvent_LeaveEndPhase, 0);
            duel.FinishHandle();
        };

        duel.SpeicalSummon(ComVal.Area_Graveyard, group, card.controller, card, ComVal.reason_Effect, effect, ComVal.CardPutType_UpRightFront, d);
    }
Exemplo n.º 2
0
    public void Operation(IDuel duel, Card card, LauchEffect effect, Group group = null)
    {
        Group g1 = duel.GetIncludeNameCardFromArea("", false, card.ownerPlayer, ComVal.CardType_Monster_Fusion, ComVal.Area_Extra);
        Group g2 = duel.GetIncludeNameCardFromArea("", false, card.ownerPlayer, ComVal.cardType_Monster, ComVal.Area_Hand | ComVal.Area_Monster);

        g1 = g1.GetCanFusionGroup(g2);
        g1 = card.controller.GetCanSpSummonGroup(g1);
        if (g1.GroupNum == 0)
        {
            duel.FinishHandle();
            return;
        }
        GroupCardSelectBack callBack = delegate(Group theGroup)
        {
            Card  c  = theGroup.GetCard(0);
            Group g3 = c.cardMaterialFitler.GetGroup(g2);

            GroupCardSelectBack callBack1 = delegate(Group theGroup1)
            {
                normalDele dele = delegate
                {
                    duel.FinishHandle();
                };
                normalDele d = delegate
                {
                    duel.SpeicalSummon(ComVal.Area_Extra, c, card.ownerPlayer, card, ComVal.reason_Effect, effect, 0, dele);
                };
                duel.AddDelegate(d);
                duel.SendToGraveyard(ComVal.Area_Monster | ComVal.Area_Hand, theGroup1, card, ComVal.reason_FusionMaterial);
            };
            duel.SelectFusionMaterialFromGroup(g3, callBack1, c);
        };

        duel.SelectCardFromGroup(g1, callBack, 1, card.controller);
    }
Exemplo n.º 3
0
    public void Operation(IDuel duel, Card card, LauchEffect effect, Group group = null)
    {
        Card c = group.GetCard(0);

        if (c.curArea != ComVal.Area_Monster)
        {
            duel.FinishHandle();
            return;
        }
        Group g = duel.GetIncludeNameCardFromArea(ComStr.KeyWord_MaskHERO, false, card.ownerPlayer, ComVal.CardType_Monster_Fusion, ComVal.Area_Extra);

        g = g.SiftingGroupInAttr(c.GetCurAttribute());
        g = card.controller.GetCanSpSummonGroup(g);
        GroupCardSelectBack d = delegate(Group g1)
        {
            Card c1 = g1.GetCard(0);

            normalDele dele = delegate
            {
                duel.FinishHandle();
            };
            duel.SpeicalSummon(ComVal.Area_Extra, c1, card.ownerPlayer, card, ComVal.reason_Effect, effect, 0, dele);
        };
        normalDele d1 = delegate
        {
            duel.SelectCardFromGroup(g, d, 1, card.controller);
        };

        duel.AddDelegate(d1);
        duel.SendToGraveyard(ComVal.Area_Monster, group, card, ComVal.reason_Effect, effect);
    }
Exemplo n.º 4
0
    public void Operation(IDuel duel, Card card, LauchEffect effect, Group group = null)
    {
        Card target = card.EffectDataCard;

        mCard = target;
        Group g = duel.GetIncludeNameCardFromArea(ComStr.KeyWord_SixSamurai, false, card.controller, ComVal.cardType_Monster, ComVal.Area_MainDeck, Fiter);

        if (!target.curArea.IsBind(ComVal.Area_Monster) || g.GroupNum == 0)
        {
            duel.FinishHandle();
            return;
        }

        GroupCardSelectBack callBack = delegate(Group val)
        {
            normalDele d = delegate
            {
                normalDele DestoryCard = delegate
                {
                    Card c = val.GetFirstCard();
                    duel.SendToGraveyard(ComVal.Area_Monster, c.ToGroup(), card, ComVal.reason_Effect, effect);
                };
                duel.AddDelayAction(DestoryCard, ComVal.resetEvent_LeaveEndPhase, 0);
                duel.FinishHandle();
            };
            duel.SpeicalSummon(ComVal.Area_MainDeck, val.GetFirstCard(), card.controller, card, ComVal.reason_Effect, effect, 0, d);
        };

        duel.SelectCardFromGroup(g, callBack, 1, card.controller);
    }
Exemplo n.º 5
0
    public void Operation(IDuel duel, Card card, LauchEffect effect, Group group = null)
    {
        Group g1 = duel.GetIncludeNameCardFromArea(ComStr.KeyWord_ElementalHERO, false, card.ownerPlayer, ComVal.CardType_Monster_Fusion, ComVal.Area_Extra);
        Group g2 = duel.GetIncludeNameCardFromArea("", false, card.ownerPlayer, ComVal.cardType_Monster, ComVal.Area_Monster | ComVal.Area_Graveyard);

        g1 = g1.GetCanFusionGroup(g2);
        g1 = card.controller.GetCanSpSummonGroup(g1);
        GroupCardSelectBack callBack = delegate(Group theGroup)
        {
            Card  c  = theGroup.GetCard(0);
            Group g3 = c.cardMaterialFitler.GetGroup(g2);

            GroupCardSelectBack callBack1 = delegate(Group theGroup1)
            {
                normalDele finish = delegate
                {
                    duel.FinishHandle();
                };
                normalDele d = delegate
                {
                    duel.SpeicalSummon(ComVal.Area_Extra, c, card.ownerPlayer, card, ComVal.reason_FusionSummon, effect, 0, finish);
                };
                duel.AddDelegate(d);
                duel.SendToRemove(ComVal.Area_Graveyard | ComVal.Area_Monster, theGroup1, card, ComVal.reason_FusionMaterial, effect);
            };
            duel.SelectFusionMaterialFromGroup(g3, callBack1, c);
        };

        duel.SelectCardFromGroup(g1, callBack, 1, card.controller);
    }
Exemplo n.º 6
0
    public void Operation(IDuel duel, Card card, LauchEffect effect, Group group = null)
    {
        normalDele norDele = delegate
        {
            duel.FinishHandle();
        };

        duel.SpeicalSummon(ComVal.Area_Hand, card, card.ownerPlayer, card, ComVal.reason_Effect, effect, 0, norDele);
    }
Exemplo n.º 7
0
    private void Operation1(IDuel duel, Card card, LauchEffect effect, Group target = null)
    {
        normalDele d = delegate
        {
            duel.FinishHandle();
        };

        duel.SpeicalSummon(ComVal.Area_Graveyard, card, card.controller, card, ComVal.reason_Effect, effect, 0, d);
    }
Exemplo n.º 8
0
    public void Operation(IDuel duel, Card card, LauchEffect effect, Group group = null)
    {
        if (duel.MonsterAreaIsFull(card.controller))
        {
            duel.FinishHandle();
            return;
        }
        normalDele d = delegate
        {
            duel.FinishHandle();
        };

        duel.SpeicalSummon(ComVal.Area_Graveyard, card, card.controller, card, ComVal.reason_Effect, effect, 0, d);
    }
Exemplo n.º 9
0
    public void Operation(IDuel duel, Card card, LauchEffect effect, Group group = null)
    {
        Group g = duel.GetIncludeNameCardFromArea(ComStr.KeyWord_SixSamurai, false, card.controller, ComVal.cardType_Monster, ComVal.Area_Hand, Fiter);
        GroupCardSelectBack callBack = delegate(Group val)
        {
            normalDele d = delegate()
            {
                duel.FinishHandle();
            };
            duel.SpeicalSummon(ComVal.Area_Hand, val.GetCard(0), card.controller, card, ComVal.reason_Effect, effect, 0, d);
        };

        duel.SelectCardFromGroup(g, callBack, 1, card.controller);
    }
Exemplo n.º 10
0
    public void Operation(IDuel duel, Card card, LauchEffect effect, Group group = null)
    {
        GroupCardSelectBack callBack = delegate(Group g)
        {
            Card       c = g.GetFirstCard();
            normalDele d = delegate
            {
                duel.FinishHandle();
            };
            duel.SpeicalSummon(ComVal.Area_Graveyard, c, card.controller, card, ComVal.reason_Effect, effect, 0, d);
        };

        duel.SelectCardFromGroup(card.controller.group_Graveyard.GetFitlerGroup(fiter), callBack, 1, card.controller);
    }
Exemplo n.º 11
0
 public void Operation(IDuel duel, Card card, LauchEffect effect, Group group = null)
 {
     if (card.curArea.IsBind(ComVal.Area_Trap))
     {
         normalDele d = delegate
         {
             duel.FinishHandle();
         };
         duel.SpeicalSummon(ComVal.Area_NormalTrap, card, card.controller, card, ComVal.reason_Effect, effect, 0, d);
     }
     else
     {
         duel.FinishHandle();
     }
 }
Exemplo n.º 12
0
    public void Operation(IDuel duel, Card card, LauchEffect effect, Group group = null)
    {
        Card target = group.GetCard(0);

        if (target.curArea != ComVal.Area_Graveyard)
        {
            return;
        }
        normalDele dele = delegate
        {
            duel.FinishHandle();
        };

        target.controller = effect.ownerCard.controller;
        duel.SpeicalSummon(ComVal.Area_Graveyard, target, effect.ownerCard.ownerPlayer, effect.ownerCard, ComVal.reason_Effect, effect, 0, dele);
    }
Exemplo n.º 13
0
    private void Operation4(IDuel duel, Card card, LauchEffect effect, Group target = null)
    {
        Group g = GetTargetGroup4(duel, card);
        GroupCardSelectBack callBack = delegate(Group val)
        {
            Card c = val.GetFirstCard();

            normalDele d = delegate()
            {
                duel.FinishHandle();
            };
            duel.SpeicalSummon(ComVal.Area_Graveyard, c, card.controller, card, ComVal.reason_Effect, effect, 0, d);
        };

        duel.SelectCardFromGroup(g, callBack, 1, card.controller);
    }
Exemplo n.º 14
0
    public void Operation(IDuel duel, Card card, LauchEffect effect, Group group = null)
    {
        Card  effectDataCard = card.EffectDataCard;
        Group mainDeckG      = duel.GetIncludeNameCardFromArea(effectDataCard.cardName, false, card.controller, ComVal.cardType_Monster, ComVal.Area_MainDeck, Fiter1);

        if (mainDeckG.GroupNum == 0)
        {
            duel.FinishHandle();
            return;
        }
        normalDele d = delegate
        {
            duel.FinishHandle();
        };

        duel.SpeicalSummon(ComVal.Area_MainDeck, mainDeckG.GetCard(0), card.controller, card, ComVal.reason_Effect, effect, ComVal.CardPutType_UpRightFront, d);
    }
Exemplo n.º 15
0
    public void Operation(IDuel duel, Card card, LauchEffect effect, Group group = null)
    {
        Group g = duel.GetIncludeNameCardFromArea(ComStr.KeyWord_ElementalHERO, false, card.ownerPlayer, ComVal.cardType_Monster, ComVal.Area_MainDeck, fitler1, false, null, null);

        Group g1 = card.ownerPlayer.GetCanSpSummonGroup(g);
        GroupCardSelectBack d1 = delegate(Group g2)
        {
            Card c = g2.GetCard(0);

            normalDele dele = delegate
            {
                duel.FinishHandle();
            };
            duel.SpeicalSummon(ComVal.Area_MainDeck, c, card.ownerPlayer, card, ComVal.reason_Effect, effect, 0, dele);
        };

        duel.SelectCardFromGroup(g1, d1, 1, card.controller);
    }
Exemplo n.º 16
0
    public void Operation1(IDuel duel, Card card, LauchEffect effect, Group group = null)
    {
        Group b = duel.GetIncludeNameCardFromArea("", false, card.ownerPlayer, ComVal.cardType_Monster, ComVal.Area_MainDeck, filer, false, null, null);
        GroupCardSelectBack callBack = delegate(Group targetGroup)
        {
            Card       target  = targetGroup.GetCard(0);
            normalDele norDele = delegate()
            {
                StateEffect e1 = new StateEffect();
                e1.SetRangeArea(ComVal.Area_Monster);
                e1.SetCategory(ComVal.category_stateEffect | ComVal.category_limitTime);
                e1.SetCardEffectType(ComVal.cardEffectType_Single | ComVal.cardEffectType_normalStateEffect);
                e1.SetTarget(target);
                e1.SetStateEffectType(ComVal.stateEffectType_unableAttack);
                e1.SetResetCode(ComVal.resetEvent_LeaveEndPhase, 0);
                duel.ResignEffect(e1, card, card.ownerPlayer);
                duel.FinishHandle();
            };
            duel.SpeicalSummon(ComVal.Area_MainDeck, target, card.ownerPlayer, card, ComVal.reason_Effect, effect, 0, norDele);
        };

        duel.SelectCardFromGroup(b, callBack, 1, card.controller);
    }