public CPlayer(int id, GameObject go) { m_id = id; m_go = go; m_animation = m_go.GetComponent <Animation> (); if (m_animation == null) { Debug.LogError("the animation component is null!"); } m_stateMachine = new StateMachine <CPlayer> (this); m_stateMachine.SetState(PlayerIdelState.GetInstance()); blood = CPlayerCommon.PlayerBlood; attackArea = new int[3]; }
/// <summary> /// Raises the message event. /// </summary> /// <param name="message">Message.</param> public void OnMessage(EventMessageBase message) { if (message.eventMessageModel == EventMessageModel.eEventMessageModel_PLAY_MOVE_STATE) { m_stateMachine.ChangeState(PlayerWalkState.GetInstance()); m_stateMachine.OnMessage(message); } else if (message.eventMessageModel == EventMessageModel.eEventMessageModel_PLAY_STATE) { if (message.eventMessageAction == (int)EnitityCommon.EnitityAction.ENITITY_ACTION_FIGHT_FINISH) { m_stateMachine.ChangeState(PlayerIdelState.GetInstance()); m_stateMachine.OnMessage(message); } else { blood -= message.eventMessageAction; if (blood <= 0) { m_stateMachine.ChangeState(PlayerDeathState.GetInstance()); m_stateMachine.OnMessage(message); } else { m_stateMachine.ChangeState(PlayerInjuerState.GetInstance()); m_stateMachine.OnMessage(message); } //Debug.Log("ai a ~~~~~~~~~ blood == " + blood.ToString()); } } else if (message.eventMessageModel == EventMessageModel.eEventMessageModel_PLAY_ATTACK_STATE) { m_stateMachine.ChangeState(PlayerAttackState.GetInstance()); } }