private void Start() { ssModel = new SpaceshipModel(new Vector3(0, -9, -1)); ssView = GameObject.Find("PlayerSpaceship").AddComponent <SpaceshipView>(); disposables = new CompositeDisposable(); Observable.EveryUpdate() .Subscribe(_ => { ssModel.UpdatePosition(Input.GetAxis("Vertical") * Time.deltaTime, Input.GetAxis("Horizontal") * Time.deltaTime); }) .AddTo(disposables); ssModel.hp .ObserveEveryValueChanged(hp => hp.Value) .Where(hp => hp < 3) .Subscribe(hpValue => { ssView.UpdateHP(hpValue); ssView.CloseFlag(); }) .AddTo(disposables); ssModel.position .ObserveEveryValueChanged(position => position.Value) .Subscribe(posValue => { ssView.UpdatePosition(posValue); }) .AddTo(disposables); ssView.isCollided .ObserveEveryValueChanged(isCollided => isCollided.Value) .Where(isCollidedValue => isCollidedValue == true) .Subscribe(isCollidedValue => { ssModel.LoseHp(); }) .AddTo(disposables); MessageBroker.Default .Receive <DeathNotice>() .Where(msg => msg.objectType == SpaceObjectType.spaceship) .Subscribe(_ => { ssView.UpdateHP(0); SelfDestruct(); }) .AddTo(this); MessageBroker.Default .Receive <GameOverNotice>() .Subscribe(msg => { disposables.Dispose(); }) .AddTo(this); }
private SpaceshipModel GetTestSession() { var session = new SpaceshipModel() { ID = 1 }; return(session); }
public async Task <ActionResult <PersonModel> > PostEvent(SpaceshipModel spaceshipModel) { try { _spaceshipRepo.Add(spaceshipModel); if (await _spaceshipRepo.Save()) { return(Created($"/api/v1.0/Spaceship/{spaceshipModel.ID}", spaceshipModel)); } } catch (Exception e) { return(StatusCode(StatusCodes.Status500InternalServerError, $"Database Failure: {e.Message}")); } return(BadRequest()); }