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);
    }
Пример #2
0
    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;
    }
Пример #3
0
    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);
    }
Пример #4
0
    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);
    }