Beispiel #1
0
        private void assertCombinations(Type[][] expectedCombinations, Mod[] actualCombinations)
        {
            Assert.AreEqual(expectedCombinations.Length, actualCombinations.Length);

            Assert.Multiple(() =>
            {
                for (int i = 0; i < expectedCombinations.Length; ++i)
                {
                    Type[] expectedTypes = expectedCombinations[i];
                    Type[] actualTypes   = ModUtils.FlattenMod(actualCombinations[i]).Select(m => m.GetType()).ToArray();

                    Assert.That(expectedTypes, Is.EquivalentTo(actualTypes));
                }
            });
        }
Beispiel #2
0
        public IEnumerable <DifficultyAttributes> CalculateAllLegacyCombinations(CancellationToken cancellationToken = default)
        {
            var rulesetInstance = ruleset.CreateInstance();

            foreach (var combination in CreateDifficultyAdjustmentModCombinations())
            {
                Mod classicMod = rulesetInstance.CreateAllMods().SingleOrDefault(m => m is ModClassic);

                var finalCombination = ModUtils.FlattenMod(combination);
                if (classicMod != null)
                {
                    finalCombination = finalCombination.Append(classicMod);
                }

                yield return(Calculate(finalCombination.ToArray(), cancellationToken));
            }
        }
Beispiel #3
0
 /// <summary>
 /// Checks whether a given <see cref="Mod"/> is valid for global selection.
 /// </summary>
 /// <param name="mod">The <see cref="Mod"/> to check.</param>
 /// <returns>Whether <paramref name="mod"/> is a valid mod for online play.</returns>
 protected virtual bool IsValidMod(Mod mod) => mod.HasImplementation && !ModUtils.FlattenMod(mod).Any(m => m is ModAutoplay);
Beispiel #4
0
 /// <summary>
 /// Checks whether a given <see cref="Mod"/> is valid for global selection.
 /// </summary>
 /// <param name="mod">The <see cref="Mod"/> to check.</param>
 /// <returns>Whether <paramref name="mod"/> is a valid mod for online play.</returns>
 protected virtual bool IsValidMod(Mod mod) => mod.HasImplementation && ModUtils.FlattenMod(mod).All(m => m.UserPlayable);