private List <EnemySpawn> GenerateContainedEnemies() { var containedEnemies = new List <EnemySpawn>(); if (_allowEnemies) { var riskPoints = EnemyPicker.DetermineRiskPoints(_chunkBuilder.Depth, _chunkBuilder.Remoteness); riskPoints = Mathf.Max(riskPoints, 10); riskPoints += _extraRiskPoints; var enemies = EnemyPicker.RequestEnemies(riskPoints, new EnemyRequestCriteria() { HeightsAllowed = new Range(0, _radius / 2), LengthsAllowed = new Range(0, _radius / 2) }); foreach (var enemy in enemies) { var requirementsForEnemy = EnemyPicker.GetRequirementsForEnemy(enemy); var requiredOffset = requirementsForEnemy.Height; var xPosition = Chance.Range(-_radius + requiredOffset, _radius - requiredOffset) + _centerpoint.X; var position = new IntVector2(xPosition, _centerpoint.Y); containedEnemies.Add(new EnemySpawn(position, enemy)); } } return(containedEnemies); }
private List <EnemySpawn> GenerateContainedEnemies() { var containedEnemies = new List <EnemySpawn>(); if (_allowEnemies) { var riskPoints = EnemyPicker.DetermineRiskPoints(_chunkBuilder.Depth, _chunkBuilder.Remoteness); riskPoints += _extraRiskPoints; var enemies = EnemyPicker.RequestEnemies(riskPoints, new EnemyRequestCriteria() { HeightsAllowed = new Range(0, _height), LengthsAllowed = new Range(0, _length) }); foreach (var enemy in enemies) { var xPos = Chance.Range(_leftEnd.X, _rightEnd.X); var position = new IntVector2(xPos, _leftEnd.Y); containedEnemies.Add(new EnemySpawn(position, enemy)); } } return(containedEnemies); }