private bool ReadinessTest(IDictionary <int, GameObject> items, LinkedList <IDescriptorWithID> list, float boundary) { if (_i == 0) { return(MultiGeneratorProvider.DefaultReadinessTest(items, list, boundary)); } GameObject obj; items.TryGetValue(_carBuffer.GetID(), out obj); _isNextCar = obj.GetComponent <Vehicle>().FrontPosZ() + _ss.MinCarGap < boundary; if (_isNextCar) { _carBuffer.Position.y = obj.GetComponent <Vehicle>().BackPosZ(); } if (_i - 1 >= InitialCarsCount) { // items.TryGetValue(_puddleBuffer.GetID(), out obj); // _isNextPuddle = obj.transform.position.z + obj.transform.localScale.z / 2 < boundary; _isNextPuddle = _puddleBuffer.Position.y + _puddleBuffer.Length / 2 < boundary; } return(_isNextCar || _isNextPuddle); }
private void Initialize() { CurrentState = State.Idle; _avatarCtrl = AvatarController.GetInstance(); _avatar = _avatarCtrl.Avatar; _avatar.OnSuccsefulEating += () => { Score += 1; }; _avatar.OnDeath += DeathHandler; _buildCtrl = BuildController.GetInstance(); _buildCtrl.SetMeteorController(); _taskCtrl = TaskController.GetInstance(); _taskCtrl.Avatar = _avatar; _taskCtrl.TaskCompleted += (ITask x) => Debug.Log(x); DuringDistanceTask.Avatar = _avatar.transform; _pursuitCtrl = PursuitController.GetInstance(); _pursuitCtrl.AvatarTf = _avatar.transform; _pursuitCtrl.Catched += CatchedHandler; _idGen = new IDGenerator(); _stuff = new SortedDictionary <int, GameObject>(); _mainProvider = new MultiGeneratorProvider(_stuff, _pursuitCtrl, _idGen); _mainProvider.SetIDGenerator(_idGen); _firstCarPos = new Vector2(0, 1); _firstCarDesc = new CarDescriptor(_firstCarPos, 0, 1); _playStats = new PlayStatistics(); _globStats = GlobalStatistics.GetInstance(); // Vehicle.Avatar = _avatar; ProjectileGun.SetAvatar(_avatar); _isInitialized = true; }
private bool ReadinessTest(IDictionary <int, GameObject> items, LinkedList <IDescriptorWithID> list, float boundary) { if (_isFirstWallSet && _wallBuffer.Position.y + _wallLen / 2 + _gapLen < boundary) { _isNextWall = true; if (!_isBufferListDirty) { foreach (var e in list) { _bufferList.AddLast(e); } _isBufferListDirty = true; } } _isNextCar = MultiGeneratorProvider. DefaultReadinessTest(items, _isBufferListDirty ? _bufferList : list, boundary); if (_isNextCar && !_isFirstWallSet) { _setFirstWall = true; foreach (var e in list) { var midNum = _ss.Road.LineNumFromPosX(_ss.Road.MiddlePosition); if (e is CarDescriptor) { _setFirstWall &= midNum != _ss.Road.LineNumFromPosX(((CarDescriptor)e).Position.x); } } } if (_isNextCar && _isBufferListDirty) { foreach (var e in _bufferList) { var carDesc = e as CarDescriptor; if (carDesc == null) { continue; } GameObject car; if (items.TryGetValue(e.GetID(), out car)) { carDesc.Position.y = car.transform.position.z; } } } return(_isNextCar || _isNextWall); }
private bool ReadinessTest(IDictionary <int, GameObject> items, LinkedList <IDescriptorWithID> list, float boundary) { var res = MultiGeneratorProvider.DefaultReadinessTest(items, list, boundary); if (!res) { return(false); } for (var i = 0; i < _lastOnLine.Length; i++) { GameObject car; if (!items.TryGetValue(_lastOnLine[i].GetID(), out car)) { continue; } // _lastOnLine[i].Position.y = ((Vehicle) car).BackPosZ(); _lastOnLine[i].Position.y = car.transform.position.z; } return(true); }