/// <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); }
/// <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; }
/// <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; }
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); } }
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); } }
public abstract void OnStateUpdate(EnemyCar enemyCar);
// enter, update, exit public abstract void OnStateEnter(EnemyCar enemyCar);
public abstract void OnStateExit(EnemyCar enemyCar);
private void OnEnable() { _enemyCar = (EnemyCar)target; }
public override void OnStateExit(EnemyCar enemyCar) { }
public override void OnStateEnter(EnemyCar enemyCar) { // set enemyAgent speed enemyCar.enemyAgent.speed = 100f; }