mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-10 22:54:14 +00:00
Split Analysis into two separate classes
Will rename in next commit
This commit is contained in:
parent
9b178fefe2
commit
fa36b70b29
10 changed files with 50 additions and 49 deletions
|
@ -201,7 +201,7 @@ namespace PKHeX.Core
|
|||
|
||||
private static bool UpdateIsValid(LegalityAnalysis la)
|
||||
{
|
||||
LegalityAnalysis.Ribbon.Verify(la);
|
||||
LegalityAnalyzers.Ribbon.Verify(la);
|
||||
return la.Results.All(z => z.Valid);
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ namespace PKHeX.Core
|
|||
GameInfo.FilteredSources = new FilteredGameDataSource(sav, GameInfo.Sources, hax);
|
||||
|
||||
// Update Legality Analysis strings
|
||||
LegalityAnalysis.ChangeLocalizationStrings(str.movelist, str.specieslist);
|
||||
LegalityAnalyzers.ChangeLocalizationStrings(str.movelist, str.specieslist);
|
||||
|
||||
// Update Legality Strings
|
||||
Task.Run(() =>
|
||||
|
|
|
@ -4,13 +4,14 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using static PKHeX.Core.LegalityCheckStrings;
|
||||
using static PKHeX.Core.LegalityAnalyzers;
|
||||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// Legality Check object containing the <see cref="CheckResult"/> data and overview values from the parse.
|
||||
/// </summary>
|
||||
public partial class LegalityAnalysis
|
||||
public sealed class LegalityAnalysis
|
||||
{
|
||||
internal readonly PKM pkm;
|
||||
internal readonly PersonalInfo PersonalInfo;
|
||||
|
@ -204,7 +205,7 @@ namespace PKHeX.Core
|
|||
Level.Verify(this);
|
||||
Level.VerifyG1(this);
|
||||
Trainer.VerifyOTG1(this);
|
||||
Misc.VerifyMiscG1(this);
|
||||
MiscValues.VerifyMiscG1(this);
|
||||
if (pkm.Format == 2)
|
||||
Item.Verify(this);
|
||||
}
|
||||
|
@ -307,20 +308,20 @@ namespace PKHeX.Core
|
|||
{
|
||||
PIDEC.Verify(this);
|
||||
Nickname.Verify(this);
|
||||
Language.Verify(this);
|
||||
LanguageIndex.Verify(this);
|
||||
Trainer.Verify(this);
|
||||
IndividualValues.Verify(this);
|
||||
EffortValues.Verify(this);
|
||||
Level.Verify(this);
|
||||
Ribbon.Verify(this);
|
||||
Ability.Verify(this);
|
||||
Ball.Verify(this);
|
||||
Form.Verify(this);
|
||||
Misc.Verify(this);
|
||||
Gender.Verify(this);
|
||||
AbilityValues.Verify(this);
|
||||
BallIndex.Verify(this);
|
||||
FormValues.Verify(this);
|
||||
MiscValues.Verify(this);
|
||||
GenderValues.Verify(this);
|
||||
Item.Verify(this);
|
||||
if (pkm.Format <= 6 && pkm.Format >= 4)
|
||||
EncounterType.Verify(this); // Gen 6->7 transfer deletes encounter type data
|
||||
Gen4EncounterType.Verify(this); // Gen 6->7 transfer deletes encounter type data
|
||||
|
||||
Contest.Verify(this);
|
||||
|
||||
|
@ -341,7 +342,7 @@ namespace PKHeX.Core
|
|||
return;
|
||||
|
||||
HyperTraining.Verify(this);
|
||||
Misc.VerifyVersionEvolution(this);
|
||||
MiscValues.VerifyVersionEvolution(this);
|
||||
|
||||
if (pkm.Format < 8)
|
||||
return;
|
||||
|
|
|
@ -4,38 +4,38 @@ using static PKHeX.Core.LegalityCheckStrings;
|
|||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
public partial class LegalityAnalysis
|
||||
internal static class LegalityAnalyzers
|
||||
{
|
||||
private static readonly Verifier Language = new LanguageVerifier();
|
||||
private static readonly Verifier Nickname = new NicknameVerifier();
|
||||
private static readonly Verifier EffortValues = new EffortValueVerifier();
|
||||
private static readonly Verifier IndividualValues = new IndividualValueVerifier();
|
||||
private static readonly Verifier Ball = new BallVerifier();
|
||||
private static readonly Verifier Form = new FormVerifier();
|
||||
private static readonly Verifier ConsoleRegion = new ConsoleRegionVerifier();
|
||||
private static readonly Verifier Ability = new AbilityVerifier();
|
||||
private static readonly Verifier Medal = new MedalVerifier();
|
||||
public static readonly Verifier LanguageIndex = new LanguageVerifier();
|
||||
public static readonly Verifier Nickname = new NicknameVerifier();
|
||||
public static readonly Verifier EffortValues = new EffortValueVerifier();
|
||||
public static readonly Verifier IndividualValues = new IndividualValueVerifier();
|
||||
public static readonly Verifier BallIndex = new BallVerifier();
|
||||
public static readonly Verifier FormValues = new FormVerifier();
|
||||
public static readonly Verifier ConsoleRegion = new ConsoleRegionVerifier();
|
||||
public static readonly Verifier AbilityValues = new AbilityVerifier();
|
||||
public static readonly Verifier Medal = new MedalVerifier();
|
||||
public static readonly Verifier Ribbon = new RibbonVerifier();
|
||||
private static readonly Verifier Item = new ItemVerifier();
|
||||
private static readonly Verifier EncounterType = new EncounterTypeVerifier();
|
||||
private static readonly Verifier HyperTraining = new HyperTrainingVerifier();
|
||||
private static readonly Verifier Gender = new GenderVerifier();
|
||||
private static readonly Verifier PIDEC = new PIDVerifier();
|
||||
private static readonly Verifier NHarmonia = new NHarmoniaVerifier();
|
||||
private static readonly Verifier CXD = new CXDVerifier();
|
||||
private static readonly Verifier Memory = new MemoryVerifier();
|
||||
private static readonly Verifier History = new HistoryVerifier();
|
||||
private static readonly Verifier Contest = new ContestStatVerifier();
|
||||
public static readonly Verifier Item = new ItemVerifier();
|
||||
public static readonly Verifier Gen4EncounterType = new EncounterTypeVerifier();
|
||||
public static readonly Verifier HyperTraining = new HyperTrainingVerifier();
|
||||
public static readonly Verifier GenderValues = new GenderVerifier();
|
||||
public static readonly Verifier PIDEC = new PIDVerifier();
|
||||
public static readonly Verifier NHarmonia = new NHarmoniaVerifier();
|
||||
public static readonly Verifier CXD = new CXDVerifier();
|
||||
public static readonly Verifier Memory = new MemoryVerifier();
|
||||
public static readonly Verifier History = new HistoryVerifier();
|
||||
public static readonly Verifier Contest = new ContestStatVerifier();
|
||||
|
||||
private static readonly TrainerNameVerifier Trainer = new TrainerNameVerifier();
|
||||
private static readonly LevelVerifier Level = new LevelVerifier();
|
||||
private static readonly MiscVerifier Misc = new MiscVerifier();
|
||||
private static readonly TransferVerifier Transfer = new TransferVerifier();
|
||||
private static readonly MarkVerifier Mark = new MarkVerifier();
|
||||
public static readonly TrainerNameVerifier Trainer = new TrainerNameVerifier();
|
||||
public static readonly LevelVerifier Level = new LevelVerifier();
|
||||
public static readonly MiscVerifier MiscValues = new MiscVerifier();
|
||||
public static readonly TransferVerifier Transfer = new TransferVerifier();
|
||||
public static readonly MarkVerifier Mark = new MarkVerifier();
|
||||
|
||||
internal static IReadOnlyList<string> MoveStrings = Util.GetMovesList(GameLanguage.DefaultLanguage);
|
||||
internal static IReadOnlyList<string> SpeciesStrings = Util.GetSpeciesList(GameLanguage.DefaultLanguage);
|
||||
internal static IEnumerable<string> GetMoveNames(IEnumerable<int> moves) => moves.Select(m => (uint)m >= MoveStrings.Count ? L_AError : MoveStrings[m]);
|
||||
public static IReadOnlyList<string> MoveStrings = Util.GetMovesList(GameLanguage.DefaultLanguage);
|
||||
public static IReadOnlyList<string> SpeciesStrings = Util.GetSpeciesList(GameLanguage.DefaultLanguage);
|
||||
public static IEnumerable<string> GetMoveNames(IEnumerable<int> moves) => moves.Select(m => (uint)m >= MoveStrings.Count ? L_AError : MoveStrings[m]);
|
||||
|
||||
public static void ChangeLocalizationStrings(IReadOnlyList<string> moves, IReadOnlyList<string> species)
|
||||
{
|
||||
|
|
|
@ -306,7 +306,7 @@ namespace PKHeX.Core
|
|||
{
|
||||
// Pokemon that evolve on trade can not be in the phase evolution after the trade
|
||||
// If the trade holds an everstone EvolveOnTrade will be false for the encounter
|
||||
var species = LegalityAnalysis.SpeciesStrings;
|
||||
var species = LegalityAnalyzers.SpeciesStrings;
|
||||
var unevolved = species[pkm.Species];
|
||||
var evolved = species[pkm.Species + 1];
|
||||
return new CheckResult(Severity.Invalid, string.Format(LEvoTradeReq, unevolved, evolved), CheckIdentifier.Encounter);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using static PKHeX.Core.LegalityCheckStrings;
|
||||
using static PKHeX.Core.LegalityAnalysis;
|
||||
using static PKHeX.Core.LegalityAnalyzers;
|
||||
|
||||
using static PKHeX.Core.MoveSource;
|
||||
using static PKHeX.Core.Severity;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using static PKHeX.Core.LegalityCheckStrings;
|
||||
using static PKHeX.Core.LegalityAnalysis;
|
||||
using static PKHeX.Core.LegalityAnalyzers;
|
||||
|
||||
namespace PKHeX.Core
|
||||
{
|
||||
|
@ -47,7 +47,7 @@ namespace PKHeX.Core
|
|||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
res[i] = relearn[i] != required[i]
|
||||
? new CheckResult(Severity.Invalid, string.Format(LMoveFExpect_0, MoveStrings[required[i]]), CheckIdentifier.RelearnMove)
|
||||
? new CheckResult(Severity.Invalid, string.Format(LMoveFExpect_0, LegalityAnalyzers.MoveStrings[required[i]]), CheckIdentifier.RelearnMove)
|
||||
: new CheckResult(CheckIdentifier.RelearnMove);
|
||||
}
|
||||
|
||||
|
|
|
@ -100,8 +100,8 @@ namespace PKHeX.Core
|
|||
return;
|
||||
|
||||
// Pokemon have been traded but it is not evolved, trade evolutions are sequential dex numbers
|
||||
var evolved = LegalityAnalysis.SpeciesStrings[pkm.Species + 1];
|
||||
var unevolved = LegalityAnalysis.SpeciesStrings[pkm.Species];
|
||||
var evolved = LegalityAnalyzers.SpeciesStrings[pkm.Species + 1];
|
||||
var unevolved = LegalityAnalyzers.SpeciesStrings[pkm.Species];
|
||||
data.AddLine(GetInvalid(string.Format(LEvoTradeReqOutsider, unevolved, evolved)));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -227,7 +227,7 @@ namespace PKHeX.Core
|
|||
|
||||
if (pkm.Format >= 6 && EncounterMatch is EncounterEgg && !pkm.Moves.SequenceEqual(pkm.RelearnMoves))
|
||||
{
|
||||
var moves = string.Join(", ", LegalityAnalysis.GetMoveNames(pkm.Moves));
|
||||
var moves = string.Join(", ", LegalityAnalyzers.GetMoveNames(pkm.Moves));
|
||||
var msg = string.Format(LMoveFExpect_0, moves);
|
||||
data.AddLine(GetInvalid(msg, Egg));
|
||||
}
|
||||
|
@ -430,7 +430,7 @@ namespace PKHeX.Core
|
|||
continue;
|
||||
}
|
||||
|
||||
data.AddLine(GetInvalid(string.Format(LMoveSourceTR, LegalityAnalysis.MoveStrings[Legal.TMHM_SWSH[i + 100]])));
|
||||
data.AddLine(GetInvalid(string.Format(LMoveSourceTR, LegalityAnalyzers.MoveStrings[Legal.TMHM_SWSH[i + 100]])));
|
||||
}
|
||||
|
||||
// weight/height scalars can be legally 0 (1:65536) so don't bother checking
|
||||
|
|
|
@ -102,7 +102,7 @@ namespace PKHeX.Core
|
|||
// Indicate what it will evolve into
|
||||
uint evoVal = WurmpleUtil.GetWurmpleEvoVal(pkm.EncryptionConstant);
|
||||
var evolvesTo = evoVal == 0 ? (int)Species.Beautifly : (int)Species.Dustox;
|
||||
var spec = LegalityAnalysis.SpeciesStrings[evolvesTo];
|
||||
var spec = LegalityAnalyzers.SpeciesStrings[evolvesTo];
|
||||
var msg = string.Format(L_XWurmpleEvo_0, spec);
|
||||
data.AddLine(GetValid(msg, CheckIdentifier.EC));
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue