Skip to content

Commit

Permalink
Added further validation
Browse files Browse the repository at this point in the history
  • Loading branch information
BigBang1112 committed Dec 12, 2022
1 parent 7ce8779 commit 5beb128
Showing 1 changed file with 44 additions and 9 deletions.
53 changes: 44 additions & 9 deletions Src/RandomizerTMF.Logic/RandomizerEngine.cs
Original file line number Diff line number Diff line change
Expand Up @@ -784,22 +784,57 @@ public static void ValidateRules()
throw new RuleValidationException("Time limit cannot be above 9:59:59");
}

if (Config.Rules.RequestRules.PrimaryType is EPrimaryType.Platform
&& (Config.Rules.RequestRules.Site.HasFlag(ESite.TMNF) || Config.Rules.RequestRules.Site.HasFlag(ESite.Nations)))
foreach (var primaryType in Enum.GetValues<EPrimaryType>())
{
throw new RuleValidationException("Platform is not valid with TMNF or Nations Exchange");
if (primaryType is EPrimaryType.Race)
{
continue;
}

if (Config.Rules.RequestRules.PrimaryType == primaryType
&& (Config.Rules.RequestRules.Site == ESite.Any
|| Config.Rules.RequestRules.Site.HasFlag(ESite.TMNF) || Config.Rules.RequestRules.Site.HasFlag(ESite.Nations)))
{
throw new RuleValidationException($"{primaryType} is not valid with TMNF or Nations Exchange");
}
}

if (Config.Rules.RequestRules.Environment is not null || Config.Rules.RequestRules.Vehicle is not null)
{
foreach (var env in Enum.GetValues<EEnvironment>())
{
if (env is EEnvironment.Stadium)
{
continue;
}

if (Config.Rules.RequestRules.Site != ESite.Any && !Config.Rules.RequestRules.Site.HasFlag(ESite.TMNF) && !Config.Rules.RequestRules.Site.HasFlag(ESite.Nations))
{
continue;
}

if (Config.Rules.RequestRules.Environment?.Contains(env) == true)
{
throw new RuleValidationException($"{env} is not valid with TMNF or Nations Exchange");
}

if (Config.Rules.RequestRules.Vehicle?.Contains(env) == true)
{
throw new RuleValidationException($"{env}Car is not valid with TMNF or Nations Exchange");
}
}
}

if (Config.Rules.RequestRules.PrimaryType is EPrimaryType.Stunts
&& (Config.Rules.RequestRules.Site.HasFlag(ESite.TMNF) || Config.Rules.RequestRules.Site.HasFlag(ESite.Nations)))
if (Config.Rules.RequestRules.EqualEnvironmentDistribution
&& Config.Rules.RequestRules.Site.HasFlag(ESite.TMNF) || Config.Rules.RequestRules.Site.HasFlag(ESite.Nations))
{
throw new RuleValidationException("Stunts is not valid with TMNF or Nations Exchange");
throw new RuleValidationException($"Equal environment distribution is not valid with TMNF or Nations Exchange");
}

if (Config.Rules.RequestRules.PrimaryType is EPrimaryType.Puzzle
&& (Config.Rules.RequestRules.Site.HasFlag(ESite.TMNF) || Config.Rules.RequestRules.Site.HasFlag(ESite.Nations)))
if (Config.Rules.RequestRules.EqualVehicleDistribution
&& Config.Rules.RequestRules.Site.HasFlag(ESite.TMNF) || Config.Rules.RequestRules.Site.HasFlag(ESite.Nations))
{
throw new RuleValidationException("Puzzle is not valid with TMNF or Nations Exchange");
throw new RuleValidationException($"Equal vehicle distribution is not valid with TMNF or Nations Exchange");
}
}

Expand Down

0 comments on commit 5beb128

Please sign in to comment.