Exemple #1
0
        /// <summary>
        /// 进入下一个技能Stage
        /// </summary>
        public void NextStage()
        {
            if (mAllStages.Count > 0)
            {
                // end current
                SkillActionBaseStage stage = mAllStages[0];
                SkillParent.RemoveUpdateFunc(stage.Update);
                stage.End();
                mAllStages.RemoveAt(0);

                // start next
                if (mAllStages.Count > 0)
                {
                    SkillActionBaseStage next_stage = mAllStages[0];

                    if (next_stage.Begin(this))
                    {
                        mCurrentStage = next_stage;
                        SkillParent.SetUpdateFuncRun(next_stage.Update);
                    }
                    else
                    {
                        NextStage();
                    }
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// 开始技能的Stage
        /// </summary>
        public void StartStage()
        {
            mAllStages.Add(new SkillActionCastStage());
            mAllStages.Add(new SkillActionCastingReady());
            mAllStages.Add(new SkillActionCastingStage());
            mAllStages.Add(new SkillActionRigidityStage());
            mAllStages.Add(new SkillActionEndingStage());

            SkillActionBaseStage first_stage = mAllStages[0];

            if (first_stage.Begin(this))
            {
                mCurrentStage = first_stage;
                SkillParent.SetUpdateFuncRun(first_stage.Update);
            }
            else
            {
                NextStage();
            }
        }