示例#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();
                    }
                }
            }
        }
示例#2
0
 public override void CollideSkillAction(Collider other)
 {
     if (other.gameObject.tag == "Head" && other.gameObject == TG)
     {
         PlayerControlThree otherPCT = other.GetComponent <PlayerControlThree>();
         if (!otherPCT.GetPlayerState().InHQ)
         {
             otherPCT.GetPlayerState().SetEffectedList(this.skillEffectList);
         }
         SkillParent.SetActive(false);
     }
 }
示例#3
0
        /// <summary>
        /// 中断技能的Stage
        /// </summary>
        public void FinishStage()
        {
            mCurrentStage = null;
            if (mAllStages.Count > 0)
            {
                // end current
                SkillActionBaseStage stage = mAllStages[0];
                SkillParent.RemoveUpdateFunc(stage.Update);
                stage.End();
                mAllStages.RemoveAt(0);
            }

            // clear all
            foreach (SkillActionBaseStage stage in mAllStages)
            {
                stage.End();
            }
            mAllStages.Clear();
        }
示例#4
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();
            }
        }