// TODO: Zadbaæ o to, ¿eby ¿adna sekwencja nie by³a d³u¿sza ni¿ 3/4 tunelu void fillTunnelObstacles() { #if DEBUG //Costam.DebugWrite("RespawnPoint.X: " + respawnPoint.TunnelPosition.X.ToString()); //Costam.DebugWrite("RespawnWall.X: " + Costam.TunnelManager.tp.PathPoints[respawnTunnelPathPointIndex].X); #endif while (respawnPoint.TunnelPosition.X + newSequence.GetCurrentLength() < respawnPointSentinel.TunnelPosition.X) { float range = DifficultRatio - 1; // Losujemy zakres tak, ¿eby ratio nie moglo spaœæ poni¿ej 1; ratioRadius = (float)random.NextDouble() * 2 * range; // Losujemy mo¿liw¹ najwiêksz¹ rozbie¿noœc od aktualnego DifficultRatio ratioRadius -= range; ratioDelta = (float)random.NextDouble() * ratioRadius; // Losujemy aktualne odchylenie; newSequence.BalanceDifficulty(DifficultRatio + ratioDelta); newSequence.ConstructOnPosition(respawnPoint.TunnelPosition); AddObstacles(newSequence.GetObjectList()); float distanceDelta = (float)random.NextDouble() * 2 * distanceBeetwenObstaclesRadius; distanceDelta -= distanceBeetwenObstaclesRadius; respawnPoint.Move(newSequence.GetCurrentLength() + distanceBetweenObstacles + distanceDelta); newSequenceIndex = random.Next(0, NonSortedSequences.Count); // TODO : zmieniæ kod przy zmianie na dictionary newSequence = NonSortedSequences[newSequenceIndex]; } respawnPointSentinel.TunnelPosition = Costam.PlayerManager.players.Values.ElementAt(0).TunnelPosition; respawnPointSentinel.Move(respawnPointSentinellDistance); }
public void initSeqSetup() { newSequenceIndex = random.Next(0, NonSortedSequences.Count); // TODO : zmieniæ kod przy zmianie na dictionary newSequence = NonSortedSequences[newSequenceIndex]; }
void AddSequence(FastSequence s) { NonSortedSequences.Add(s); }