Exemple #1
0
        private void InitializeSpawner()
        {
            spawnerRand    = new Random(serverAPI.World.Seed);
            timeSinceSpawn = serverAPI.World.ElapsedMilliseconds;

            minMeteorSpawnTime = MeteoricExpansionHelpers.GetMinSpawnTime();
            maxMeteorSpawnTime = MeteoricExpansionHelpers.GetMaxSpawnTime();

            nextMeteorSpawn = spawnerRand.Next(minMeteorSpawnTime, maxMeteorSpawnTime) + spawnerRand.NextDouble();
            nextMeteorSpawn = MeteoricExpansionHelpers.ConvertMinutesToMilliseconds(nextMeteorSpawn);
        }
Exemple #2
0
        //-- Spawn a meteor made with random rock and metals above the first online player every number of seconds as determined by tickIntervalInSeconds --//
        //-- Eventually spawns will happen between the minMeteorSpawnTime and maxMeteorSpawnTime --//
        private void onSpawnerTick(float deltaTime)
        {
            if (this.serverAPI.World.ElapsedMilliseconds - timeSinceSpawn > nextMeteorSpawn)
            {
                if (serverAPI.World.AllOnlinePlayers.Length > 0)
                {
                    int playerToSpawnAt = GetSinglePlayer(serverAPI.World.AllOnlinePlayers);

                    serverAPI.World.SpawnEntity(InitEntity(MeteoricExpansionHelpers.SelectRandomMeteor(), playerToSpawnAt));
                }

                nextMeteorSpawn = spawnerRand.Next(minMeteorSpawnTime, maxMeteorSpawnTime) + spawnerRand.NextDouble();
                nextMeteorSpawn = MeteoricExpansionHelpers.ConvertMinutesToMilliseconds(nextMeteorSpawn);

                timeSinceSpawn = this.serverAPI.World.ElapsedMilliseconds;
            }
        }