Exemplo n.º 1
0
    public AbilityActionStatus Perform(CharacterProperty target)
    {
        mTarget = target;

        mOwner.ReduceMP(mCost);

        if (CoodDownLeft <= 0)
        {
            mLastTime = Time.time;

            for (int i = 0; i < mActions.Count; i++)
            {
                mActions [i].Init();
            }

            currentIndex = 0;


            for (currentIndex = 0; currentIndex < mActions.Count; currentIndex++)
            {
                AbilityAction action = mActions [currentIndex];
                action.SetTarget(mTarget);
                action.Execute();
                AbilityActionStatus status = action.status;
                if (status != AbilityActionStatus.Success)
                {
                    return(status);
                }
            }
        }

        return(AbilityActionStatus.Success);
    }
Exemplo n.º 2
0
    public AbilityActionStatus Update()
    {
        if (currentIndex < mActions.Count)
        {
            for (; currentIndex < mActions.Count; currentIndex++)
            {
                AbilityAction action = mActions [currentIndex];
                action.SetTarget(mTarget);
                action.Execute();
                AbilityActionStatus status = action.status;
                if (status != AbilityActionStatus.Success)
                {
                    return(status);
                }
            }
        }

        if (onExit != null)
        {
            onExit.OnNext(this);
        }

        return(AbilityActionStatus.Success);
    }