Example #1
0
        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];
        }
Example #2
0
        /// <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());
            }
        }