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; }
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()); }
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); } } }