Exemplo n.º 1
0
 /// <summary>
 /// Method for loading last state.
 /// </summary>
 public void LoadSave()
 {
     this.repository.LoadModelFromXml();
     this.player  = model.Player;
     this.traffic = model.Traffic;
     this.enemy   = model.Enemy;
     this.lanes   = model.Lanes;
     RefreshScreen?.Invoke(this, EventArgs.Empty);
 }
    public override void OnStateEnter(EnemyCar enemyCar)
    {
        // set speed of enemyCar
        enemyCar.enemyAgent.speed = 20f;

        // choose new position and move towards
        Vector3 newPatrolPosition = enemyCar.GetRandomPositionWithinRadius(enemyCar.pointOfInterest, GameConstants.ENEMY_PATROL_RADIUS);

        enemyCar.MoveToPointInGameWorld(newPatrolPosition);
    }
Exemplo n.º 3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TRLogic"/> class.
 /// </summary>
 /// <param name="model">Model.</param>
 /// <param name="repository">Repository.</param>
 public TRLogic(IModel model, IRepository repository)
 {
     this.model      = model;
     this.player     = model.Player;
     this.traffic    = model.Traffic;
     this.enemy      = model.Enemy;
     this.lanes      = model.Lanes;
     this.repository = repository;
     BossSequence   += StartBossSequence;
 }
Exemplo n.º 4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TRLogic"/> class.
 /// </summary>
 /// <param name="model">Model.</param>
 /// <param name="repository">Repository.</param>
 /// <param name="dispatcher">Dispatcher.</param>
 public TRLogic(IModel model, IRepository repository, Dispatcher dispatcher)
 {
     this.model             = model;
     this.player            = model.Player;
     this.traffic           = model.Traffic;
     this.enemy             = model.Enemy;
     this.lanes             = model.Lanes;
     this.repository        = repository;
     this.dispatcher        = dispatcher;
     BossSequence          += StartBossSequence;
     model.bulletLockObject = bulletLockObject;
 }
Exemplo n.º 5
0
    public override void OnStateUpdate(EnemyCar enemyCar)
    {
        // chase ball
        if (enemyCar.enemyAgent.enabled)
        {
            enemyCar.MoveToPointInGameWorld(enemyCar.ball.transform.position);
        }

        if (!enemyCar.isBallWithinRange())
        {
            // exit chase state
            OnStateExit(enemyCar);

            // move to patrol state
            enemyCar.MakeTransitionToNextFSMState(enemyCar.patrolBehavior);
        }
    }
Exemplo n.º 6
0
        private void InitEnemyCar()
        {
            if (_gameData.replayData != null)
            {
                _enemyCar = new EnemyCar();
                var _enemy_model = _gameData.player1_Id == _playerManager.PlayerId ?
                                   _gameData.player2_car : _gameData.player1_car;
                CarBase car = _carConstructor.CreateEnemyCar(_enemy_model, _enemy_model.current_color);
                _enemyCar.InitCar(car);
                _enemyCar.Init();

                if (_gameData.replayData != "crash")
                {
                    _enemyCar.GetReplayFrame(0);
                }
            }
        }
    public override void OnStateUpdate(EnemyCar enemyCar)
    {
        // every few seconds pick a random point and move
        _counter += Time.deltaTime;
        if (_counter >= _patrolTime)
        {
            // pick new position and move
            Vector3 newPatrolPosition = enemyCar.GetRandomPositionWithinRadius(enemyCar.pointOfInterest, GameConstants.ENEMY_PATROL_RADIUS);
            enemyCar.MoveToPointInGameWorld(newPatrolPosition);

            _counter = 0;
        }

        // move to chase if ball is within fov radius
        if (enemyCar.isBallWithinRange())
        {
            // exit current state
            OnStateExit(enemyCar);

            // move to chase state
            enemyCar.MakeTransitionToNextFSMState(enemyCar.chaseBehavior);
        }
    }
Exemplo n.º 8
0
 public abstract void OnStateUpdate(EnemyCar enemyCar);
Exemplo n.º 9
0
 // enter, update, exit
 public abstract void OnStateEnter(EnemyCar enemyCar);
Exemplo n.º 10
0
 public abstract void OnStateExit(EnemyCar enemyCar);
Exemplo n.º 11
0
 private void OnEnable()
 {
     _enemyCar = (EnemyCar)target;
 }
Exemplo n.º 12
0
 public override void OnStateExit(EnemyCar enemyCar)
 {
 }
Exemplo n.º 13
0
 public override void OnStateEnter(EnemyCar enemyCar)
 {
     // set enemyAgent speed
     enemyCar.enemyAgent.speed = 100f;
 }