Example #1
0
        //temp 可以优化,重新架构状态机不使用框架状态机
        protected void ChangeState(IFsm <Avatar> fsm, StateDefine eState)
        {
            switch (eState)
            {
            case StateDefine.State_Idle:
                ChangeState <StateIdle>(fsm);
                break;

            case StateDefine.State_Move:
                ChangeState <StateMove>(fsm);
                break;

            case StateDefine.State_Skill:
                ChangeState <StateSkill>(fsm);
                break;

            case StateDefine.State_WeaklyControl:
                ChangeState <StateWeaklyControl>(fsm);
                break;

            case StateDefine.State_StronglyControl:
                ChangeState <StateStronglyControl>(fsm);
                break;

            case StateDefine.State_Death:
                ChangeState <StateDeath>(fsm);
                break;

            default:
                Log.Fatal("State machine change fatal!!! '{0}'", eState.ToString());
                break;
            }
        }
Example #2
0
 protected override bool CanChangeState(IFsm <Avatar> fsm, StateDefine nextState)
 {
     if (nextState == StateDefine.State_None)
     {
         return(false);
     }
     return(true);
 }
Example #3
0
 public void ResetState(StateDefine eState)
 {
     if (m_flag == null)
     {
         return;
     }
     m_flag.ResetState(eState);
 }
Example #4
0
 public bool CheckState(StateDefine eState)
 {
     if (m_flag == null)
     {
         return(false);
     }
     return(m_flag.CheckState(eState));
 }
Example #5
0
 protected override bool CanChangeState(IFsm <Avatar> fsm, StateDefine nextState)
 {
     if (nextState == StateDefine.State_None ||
         nextState == StateDefine.State_Idle ||
         nextState == StateDefine.State_Move ||
         fsm.Owner.CheckState(StateDefine.State_LockActiveSkill))
     {
         return(false);
     }
     return(true);
 }
Example #6
0
 protected override bool CanChangeState(IFsm <Avatar> fsm, StateDefine nextState)
 {
     if (nextState == StateDefine.State_None ||
         nextState == StateDefine.State_Idle ||
         nextState == StateDefine.State_Move ||
         nextState == StateDefine.State_Skill ||
         nextState == StateDefine.State_WeaklyControl)
     {
         return(false);
     }
     return(true);
 }
Example #7
0
    private static IState CreateStateInstance(ELifeState stateId, Ilife unit)
    {
        if (null == m_StateFactory)
        {
            StateDefine.RegisterState();
        }
        IState result = null;
        Type   type   = null;

        if (m_StateFactory.TryGetValue(stateId, out type))
        {
            result = Activator.CreateInstance(type, unit, stateId) as IState;
        }
        return(result);
    }
Example #8
0
 protected abstract bool CanChangeState(IFsm <Avatar> fsm, StateDefine nextState);
Example #9
0
 public void Clear()
 {
     map   = 0;
     state = StateDefine.Waiting;
 }
Example #10
0
 public void ResetState(StateDefine eState)
 {
     m_Value.Set((int)eState, false);
 }
Example #11
0
 public void SetState(StateDefine eState)
 {
     m_Value.Set((int)eState, true);
 }
Example #12
0
 public bool CheckState(StateDefine eState)
 {
     return(m_Value.Get((int)eState));
 }