Exemple #1
0
        public RaceUseCase(RacePresenter presenter, RacePlayerQWOP racePlayerQWOP, RaceGoal raceGoal, Action <bool, float, bool, float> onChangeResult, Action onChangeTitle, int selectRace)
        {
            _presenter      = presenter;
            _racePlayerQWOP = racePlayerQWOP;
            _onChangeResult = onChangeResult;
            _onChangeTitle  = onChangeTitle;
            _raceGoal       = raceGoal;
            _raceGoal.RegisterEnter(OnGoal);

            _racePlayerQWOP.Setup(OnGoal);
            _presenter.Setup(_racePlayerQWOP);
            _presenter.RegisterLeftUpper(OnAccelerationLeftUpper);
            _presenter.RegisterRightUpper(OnAccelerationRightUpper);
            _presenter.RegisterLeftLower(OnAccelerationLeftLower);
            _presenter.RegisterRightLower(OnAccelerationRightLower);

            AbsolutelyActiveCorutine.WaitSecondInvoke(() =>
            {
                _isTapped = false;
                _presenter.PlaySignal(() =>
                {
                    _startTime = Time.realtimeSinceStartup;
                    _isStart   = true;
                    _presenter.StartTime();
                    _racePlayerQWOP.Go();
                });
            }, 1.5f);

            _startTime  = 0f;
            _tapCount   = 0;
            _isStart    = false;
            _isGoal     = false;
            _selectRace = selectRace;
        }
Exemple #2
0
 public void StartTime()
 {
     _measuring = true;
     _view.Time.gameObject.SetActive(true);
     _view.Length.gameObject.SetActive(true);
     SetLength(0);
     _view.Time.text = string.Format("{0:F4}", _timer);
     AbsolutelyActiveCorutine.Subscribe(UpdateTime());
 }
Exemple #3
0
        public ResultUseCase(ResultPresenter presenter, RaceContextContainer raceContextContainer, Action onChangeTitle)
        {
            _presenter     = presenter;
            _onChangeTitle = onChangeTitle;
            _presenter.RegisterGoTitle(null);
            _presenter.SetTimer(raceContextContainer.Time);
            _presenter.SetLength(raceContextContainer.Length);
            _presenter.Win(raceContextContainer.IsWin);
            _presenter.SetTraining(raceContextContainer.IsTraining);
            AbsolutelyActiveCorutine.WaitSecondInvoke(() =>
            {
                _presenter.RegisterGoTitle(OnChangeTitle);
            }, WAIT_TIME);

            if (raceContextContainer.IsTraining)
            {
                PlayerModel playerModel = PlayerRepository.I.GetOwner();
                if (playerModel == null)
                {
                    playerModel = new PlayerModel("", "", PlayerEnvironment.DEFAULT_RACE_TIME, 1, 5, 5, 5);
                }

                int addAcceleration    = Random.Range(1, 5);
                int addFastest         = Random.Range(1, 5);
                int addInitialVelocity = Random.Range(1, 5);

                playerModel = new PlayerModel(playerModel.UserID, playerModel.UserName, playerModel.RaceTime, playerModel.RaceLevel, playerModel.Acceleration + 1, playerModel.Fastest + 1, playerModel.InitialVelocity + 1);
                PlayerRepository.I.Save(playerModel);
            }
            else
            {
                if (raceContextContainer.IsWin)
                {
                    PlayerModel playerModel = PlayerRepository.I.GetOwner();
                    if (playerModel == null)
                    {
                        playerModel = new PlayerModel("", "", PlayerEnvironment.DEFAULT_RACE_TIME, 1, 5, 5, 5);
                    }

                    int addAcceleration    = Random.Range(3, 10);
                    int addFastest         = Random.Range(3, 10);
                    int addInitialVelocity = Random.Range(3, 10);

                    playerModel = new PlayerModel(playerModel.UserID, playerModel.UserName, playerModel.RaceTime, playerModel.RaceLevel + 1, playerModel.Acceleration + addAcceleration, playerModel.Fastest + addFastest, playerModel.InitialVelocity + addInitialVelocity);
                    PlayerRepository.I.Save(playerModel);
                }
            }
        }