Example #1
0
 public override void EndSkill()
 {
     // SetLockMonster make LockMonsterTsf null, next Start m_LockMonsterTsf will be null
     //SetLockMonster(null, null);
     //m_Bullet.StopAtkAbs();
     m_CurSkillStep = ManiacSkillStep.None;
 }
Example #2
0
 private void ExecuteStep(float dt)
 {
     m_Pet.SetSpeed(Vector2.zero);
     m_SkillTime += dt;
     if (m_CurSkillStep == ManiacSkillStep.Step1)
     {
         m_Pet.SetColliderTriggerEnable(true);
         float ratio = m_SkillTime / m_SkillStep1Time;
         if (m_SkillTime > m_SkillStep1Time)
         {
             m_SkillTime    = 0;
             m_CurSkillStep = ManiacSkillStep.Step2;
             AddBullet();
         }
         transform.position = Vector3.Lerp(m_StartPos, m_LockPos, Mathf.Min(1, ratio));
     }
     else if (m_CurSkillStep == ManiacSkillStep.Step2) // fly
     {
         m_Pet.SetColliderTriggerEnable(false);
         if (m_SkillTime > m_SkillStep2Time)
         {
             m_CurSkillStep = ManiacSkillStep.None;
             m_SkillTime    = 0;
             m_Pet.PlayAnim(GameConstVal.Idle);
         }
     }
 }
Example #3
0
 public override void StartSkill()
 {
     m_EndSkill     = false;
     m_InBreakState = false;
     m_CurTime      = m_DtTime - 0.01f;
     m_LockTools.SetLockTsf(m_LockMonsterTsf);
     m_CurSkillStep = ManiacSkillStep.None;
 }
Example #4
0
        public override void MUpdate()
        {
            float dtTime = BaseScene.GetDtTime();

            m_CurTime += dtTime;
            if (dtTime > 0 && !m_InBreakState)
            {
                if (!m_EndSkill)
                {
                    m_LockTools.Update();
                }
                if (!m_InBreakState)
                {
                    ExecuteStep(dtTime);
                    if (m_LockMonster != null && m_LockMonster.InDeath)
                    {
                        m_EndSkill = true;
                    }
                    if (m_LockMonster != null && !m_LockMonster.InDeath && !m_EndSkill)
                    {
                        // 技能执行中
                        if (m_AtkTimes > 0 && m_CurTime > m_DtTime)
                        {
                            m_Pet.PlayAnim(GameConstVal.Skill02);
                            m_CurTime      = m_CurTime - m_DtTime;
                            m_CurSkillStep = ManiacSkillStep.Step1;
                            m_SkillTime    = 0;
                            m_AtkTimes--;
                            m_LockPos  = m_LockMonster.transform.position;
                            m_StartPos = m_Pet.transform.position;
                        }
                        else if (m_AtkTimes == 0 && m_CurTime > m_AnimTime)
                        {
                            m_AtkTimes = AtkTimes;
                            m_Pet.PlayAnim(GameConstVal.Run);
                            m_Controller.EndSecondSkill();
                            m_Controller.TriggerFirstSkill();
                        }
                    }
                    else if (m_CurTime > m_AnimTime) // 必须等待动作执行完毕
                    {
                        if (m_AtkTimes == 0)
                        {
                            m_AtkTimes = AtkTimes;
                            m_Controller.EndSecondSkill();
                        }
                        else
                        {
                            m_Controller.EndSkill();
                        }
                        m_Pet.PlayAnim(GameConstVal.Idle);
                    }
                }
                else
                {
                    m_Pet.SetSpeed(Vector2.zero);
                }
            }
            else
            {
                m_Pet.SetSpeed(Vector2.zero);
            }
        }