private bool TryToAddSingleBeatLevelElement(SingleBeat singleBeat, LevelElementType type) { LevelElementPlacement placement = LevelElementPlacement.CreateSingleSynchro( type, singleBeat.Time); return(TryToAddLevelElement(placement)); }
public Level GenerateThirdTutorialLevel() { LevelPlan levelPlan = new LevelPlan(); float segmentLength = 5; for (int i = 0; i < 30; i++) { float offset = 3 + i * segmentLength; LevelElementPlacement singleProjectile = LevelElementPlacement.CreateSingleSynchro( LevelElementType.SingleProjectile, offset); List <float> synchros = new List <float>() { offset + 2, offset + 2.5f, offset + 3 }; LevelElementPlacement multipleProjectiles = LevelElementPlacement.CreateMultipleSynchro( LevelElementType.MultipleProjectiles, synchros); levelPlan.AddLevelElementPlacement(singleProjectile); levelPlan.AddLevelElementPlacement(multipleProjectiles); } Level level = GenerateLevel(levelPlan); level.Name = "TutorialLevel3"; level.IsTutorial = true; return(level); }
public Level GenerateFirstTutorialLevel() { LevelPlan levelPlan = new LevelPlan(); float segmentLength = 7; for (int i = 0; i < 30; i++) { float offset = 3 + i * segmentLength; LevelElementPlacement highCollectible = LevelElementPlacement.CreateSingleSynchro( LevelElementType.HighCollectible, offset); LevelElementPlacement jumpObstacle = LevelElementPlacement.CreateSingleSynchro( LevelElementType.JumpObstacle, offset + 2); LevelElementPlacement chasm = LevelElementPlacement.CreateProlongedSynchro( LevelElementType.Chasm, offset + 4, offset + 5); levelPlan.AddLevelElementPlacement(highCollectible); levelPlan.AddLevelElementPlacement(jumpObstacle); levelPlan.AddLevelElementPlacement(chasm); } Level level = GenerateLevel(levelPlan); level.Name = "TutorialLevel1"; level.IsTutorial = true; return(level); }
private void FillWithLowCollectibles() { foreach (SingleBeat singleBeat in songElements.SingleBeats) { if (singleBeat.Applicability < LevelGenerationValues.FillUpElementsApplicabilityThreshold) { continue; } LevelElementPlacement placement = LevelElementPlacement.CreateSingleSynchro( LevelElementType.LowCollectible, singleBeat.Time); if (IsTimeRangeFree(placement.LevelElementStartTime, placement.LevelElementEndTime)) { AddLevelElementPlacement(placement); } } }
private void CreateSingleSynchronisation(LevelElementType type, float synchronisationTime) { AddLevelElementPlacement(LevelElementPlacement.CreateSingleSynchro(type, synchronisationTime)); }