private static void AssignMonsterLevel(IRandomizerObject randomizerObject, int level) { if (randomizerObject is IRandomizerTable table) { foreach (var value in table.Contents) { AssignMonsterLevel(value, level); } return; } if (randomizerObject is RandomizerRandomItemValue randomItemValue) { randomItemValue.MonsterLevel = level; } }
private void PopulateResult(List <IRandomizerObject> result, IRandomizerObject entry) { if (entry is RandomizerNullValue || entry.Unique && this.unique.Contains(entry)) { return; } entry.OnHit(); this.unique.Add(entry); if (entry is IRandomizerTable table) { foreach (var randomizerObject in table.Evaluate()) { PopulateResult(result, randomizerObject); } return; } result.Add(entry); }
public void Add(IRandomizerObject entry) { entry.Table = this; Contents.Add(entry); }