public void OnMessage(EventMessageBase message) { if (message.eventMessageModel == EventMessageModel.eEventMessageModel_PLAY_ATTACK_STATE) { m_blood -= message.eventMessageAction; if (m_blood <= 0) { m_stateMachine.ChangeState(MonsterDeathState.GetInstance()); } else { m_stateMachine.ChangeState(MonsterInjurtState.GetInstance()); } Debug.Log("monster blood =" + m_blood.ToString()); } else { if (message.eventMessageAction == (int)EnitityCommon.EnitityAction.ENITITY_ACTION_FIGHT_FINISH) { m_stateMachine.ChangeState(MonsterIdelState.GetInstance()); } } m_stateMachine.OnMessage(message); }
public AIState GetEnitityAiState() { if (m_stateMachine.GetState() == MonsterIdelState.GetInstance()) { return(AIState.AI_STATE_STAND); } return(AIState.AI_STATE_NULL); }
public CMonster(int id, GameObject go) { m_id = id; m_go = go; m_animation = go.GetComponent <Animation>(); m_aniamtionEvent = go.GetComponent <NAnimationEvent> (); m_stateMachine = new StateMachine <CMonster>(this); m_stateMachine.SetState(MonsterIdelState.GetInstance()); m_blood = CMonsterCommon.Boold; }