コード例 #1
0
ファイル: Spawner.cs プロジェクト: Syjgin/zerotram
    private void DoRegularSpawn(GameObject spawnPoint)
    {
        int maxCount   = GameController.GetInstance().GetCurrentSpawnCount();
        int doorsCount = _doorsTimer.GetOpenedDoorsCount();
        int realCount  = Randomizer.GetInRange(1, maxCount / doorsCount);

        for (int i = 0; i < realCount; i++)
        {
            if (GameController.GetInstance().GetPassengersCount() > _maxPassengers || _currentSessionSpawnCount >= maxCount)
            {
                return;
            }
            string      passengerString = MapManager.GetInstance().GetRandomCharacter();
            PassengerSM ps = InstantiateNPC(passengerString, spawnPoint.transform.position, true);
            _currentSessionSpawnCount++;
            if (ps == null)
            {
                return;
            }
            _bonusTimer.AddBonusEffectToSpawnedPassenger(ps);
            if (ps.IsStick())
            {
                _doorsTimer.SetPaused(true);
                return;
            }
            ps.MoveToRandomPosition();
        }
    }