Пример #1
0
        private void Move(int horizontal, int vertical)
        {
            var startPos = _model.position;
            var endPos   = startPos + new Vector2(horizontal, vertical);

            var hitInfo = Linecast(startPos, endPos);

            if (hitInfo.transform.IsNull())
            {
                _model.movePosition = endPos;
                _fsm.ChangeState <PlayerState_Move>();
            }
            else if (hitInfo.transform.CompareTag("Enemy"))
            {
                var enemy = hitInfo.transform.GetComponent <EnemyFacade>();
                Debug.Assert(enemy.IsValid());

                MoveToEnemy(enemy);
            }
        }
Пример #2
0
 private void OnMoveComplete()
 {
     _model.position = _model.movePosition;
     _fsm.ChangeState <PlayerState_Idle>();
     _enemyTurnCommand.Execute();
 }
Пример #3
0
 private void Start()
 {
     _fsm.ChangeState <PlayerState_Idle>();
 }
Пример #4
0
 private void OnMoveComplete()
 {
     _fsm.ChangeState <PlayerState_Idle>();
     _enemyTurnCommand.Execute();
 }