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"); }
/// <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()); } }