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; }
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); } } }
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; }
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); } }