public GenPatternList(GenPattern sub, int count) { for (int i = 0; i < count; ++i) { patterns.Add(sub); } }
public void generate(GameObject scene) { float target = Random.Range(0, totalPossibility); float p = 0.0f; SinglePattern targPattern = null; string patternName = ""; do { foreach (KeyValuePair <string, SinglePattern> pair in patterns) { p += pair.Value.prob; if (p >= target) { targPattern = pair.Value; patternName = pair.Key; break; } } } while(lastGenPattern != null && !lastGenPattern.acceptsAsNextPattern(patternName)); lastGenPattern = targPattern.pattern; generate(scene, targPattern.pattern); //Debug.Log("Generate " + patternName); }
public GenRepeatRandomTimes(GenPattern pat, int a, int b) { pattern = pat; from = a; to = b; }
public GenWithPlatform(GenPattern _pattern, double genProb) { pattern = _pattern; platProb = genProb; }
public SinglePattern(GenPattern _pattern, float p) { pattern = _pattern; prob = p; }
public void generate(GameObject scene, GenPattern pattern) { targetX += pattern.generateAt(scene, targetX); }
public void addPattern(string name, GenPattern pattern, float prob = 1.0f) { patterns.Add(name, new SinglePattern(pattern, prob)); totalPossibility += prob; }