protected override void OnEnterState(IFsm <Avatar> pAvatar, StateParam nextParam) { StateSkillParam param = nextParam as StateSkillParam; if (param == null) { Log.Error("Current State '{0}': the Variable's(the initParam) type isn't right! '{1}'", typeof(StateIdle), typeof(Variable)); return; } m_nSkillID = param.m_nSkillID; m_fCurTime = 0; m_fTotalTime = param.m_fTotalTime; m_fBreakTime = param.m_fBreakTime; pAvatar.Owner.SetState(StateDefine.State_LockActiveSkill); pAvatar.Owner.SetState(StateDefine.State_LockMove); DRSkillData pSkillData = GameEntry.DataTable.GetDataTable <DRSkillData>().GetDataRow(m_nSkillID); if (pSkillData == null) { Log.Error("pSkillData '{0}': pSkillData is null!", m_nSkillID); return; } pAvatar.Owner.PlayAnimation(pSkillData.MSV_AnimID); }
public override bool SetFSMState() { if (!m_pOwner) { return(false); } StateSkillParam param = new StateSkillParam(); param.m_nSkillID = m_pSkillData.Id; param.m_fTotalTime = m_pSkillData.MSV_LastTime; param.m_fBreakTime = m_pSkillData.MSV_LockTime; return(m_pOwner.SetFsmState(this, param)); }