/// <summary> /// Spawns randomly selected obstacle. /// </summary> private void SpawnObstacle() { var decisionMaker = ProbabilityDecisionMaker.GetInstance(); var obstacleToSpawn = decisionMaker.SpawnWhatObstacle(); ObstaclesPool poolToUse; if (_enemiesPools.TryGetValue(obstacleToSpawn, out poolToUse) == false) { throw new Exception($"Tried to spawn obstacle from non-existent pool: {obstacleToSpawn}!"); } var obstacleData = _obstacleDataRandomizer.GetRandomizedObstacleData(obstacleToSpawn); obstacleData.ConstantForce = EnemiesConstantForce; poolToUse.SpawnObstacle(obstacleData); }
/// <summary> /// Retrieves the instance of this singleton. /// </summary> /// <returns></returns> public static ProbabilityDecisionMaker GetInstance() { return(_instance ?? (_instance = new ProbabilityDecisionMaker())); }
public void Dispose() { _instance = null; }