예제 #1
0
        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;
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
 public void Add(IRandomizerObject entry)
 {
     entry.Table = this;
     Contents.Add(entry);
 }