public override void Update()
    {
        DelayUpdate(delegate {
            GetFieldWatcher().Reset();
            GetFieldWatcher().AddCardList(GetSoulZone());
            GetFieldWatcher().AddCardList(GetDropZone());

            GetFieldWatcher().Filter(delegate(Card c) {
                return c.cardID == CardIdentifier.BLASTER_BLADE_LIBERATOR;
            });

            GetFieldWatcher().SetActionToPerform(delegate(Card c) {
                cardMoving = c;

                if(c._Coord == CardCoord.SOUL)
                {
                    FromSoulToDeck(c);
                    bCallPerformActionFunction = true;
                }
                else if(c._Coord == CardCoord.DROP)
                {
                    List<CardIdentifier> list = new List<CardIdentifier>();
                    FromDropToDeck(list);
                }

                GetFieldWatcher().RemoveFromList(c);
                GetFieldWatcher().Close();
            });

            GetFieldWatcher().Open();
        });

        FromDropToDeckUpdate(delegate {
            bCallPerformActionFunction = true;
        });

        CallFromDeckUpdate(delegate {
            EndEffect();
        });

        if(bCallPerformActionFunction && (cardMoving != null && !cardMoving.AnimationOngoing()))
        {
            bCallPerformActionFunction = false;
            PerformNextAction();
        }
    }
예제 #2
0
    public void Presenter_Update()
    {
        DelayUpdate(delegate {
            _AuxCard = Game.SoulCharge();
            _AuxBool = false;
        });

        if(_AuxBool && !_AuxCard.AnimationOngoing())
        {
            _AuxBool = false;
            Game.SoulCharge();
            EndEffect();
        }
    }