Пример #1
0
    private void Awake()
    {
        playerStateMachine = new PlayerStateMachine();

        playerIdleState = new PlayerIdleState(this, playerData, "idle");
        playerMoveState = new PlayerMoveState(this, playerData, "move");
        playerLandState = new PlayerLandState(this, playerData, "land");

        playerJumpState    = new PlayerJumpState(this, playerData, "inAir");
        playerDashState    = new PlayerDashState(this, playerData, "dash");
        playerAttack1State = new PlayerAttack1State(this, playerData, "attack1");
        playerAttack2State = new PlayerAttack2State(this, playerData, "attack2");

        playerPrimaryAttackState   = new PlayerAttackState(this, playerData, "attack");
        playerSecondaryAttackState = new PlayerAttackState(this, playerData, "attack");

        playerInAirState = new PLayerInAirState(this, playerData, "inAir");

        playerAttackedState = new PlayerAttackedState(this, playerData, "attacked");

        playerDeathState = new PlayerDeathState(this, playerData, "die");
    }
Пример #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());
            }
        }