mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-09-07 23:08:47 -05:00
@@ -493,7 +493,11 @@ public static TimeCapsuleEvaluation IsTimeCapsuleTransferred(PKM pkm, IList<Chec
|
||||
{
|
||||
// ReSharper disable once ConditionIsAlwaysTrueOrFalse
|
||||
if (moves.Any(z => z != null && z.Generation != enc.Generation && z.Generation <= 2))
|
||||
{
|
||||
if (pkm is PK1 {Catch_Rate: not 0} g1 && !IsTradebackCatchRate(g1.Catch_Rate))
|
||||
return TimeCapsuleEvaluation.BadCatchRate;
|
||||
return enc.Generation == 2 ? TimeCapsuleEvaluation.Transferred21 : TimeCapsuleEvaluation.Transferred12;
|
||||
}
|
||||
|
||||
if (pkm is not GBPKM gb)
|
||||
{
|
||||
@@ -518,9 +522,14 @@ public static TimeCapsuleEvaluation IsTimeCapsuleTransferred(PKM pkm, IList<Chec
|
||||
|
||||
if (gb is PK1 pk1)
|
||||
{
|
||||
var rate = pk1.Catch_Rate;
|
||||
if (rate == 0)
|
||||
return TimeCapsuleEvaluation.Transferred12;
|
||||
|
||||
bool isTradebackItem = IsTradebackCatchRate(rate);
|
||||
if (IsCatchRateMatchEncounter(enc, pk1))
|
||||
return IsTradebackCatchRate(pk1.Catch_Rate) ? TimeCapsuleEvaluation.Indeterminate : TimeCapsuleEvaluation.NotTransferred;
|
||||
return IsTradebackCatchRate(pk1.Catch_Rate) ? TimeCapsuleEvaluation.Transferred12 : TimeCapsuleEvaluation.BadCatchRate;
|
||||
return isTradebackItem ? TimeCapsuleEvaluation.Indeterminate : TimeCapsuleEvaluation.NotTransferred;
|
||||
return isTradebackItem ? TimeCapsuleEvaluation.Transferred12 : TimeCapsuleEvaluation.BadCatchRate;
|
||||
}
|
||||
return TimeCapsuleEvaluation.Indeterminate;
|
||||
}
|
||||
|
||||
@@ -168,7 +168,7 @@ private void VerifyMiscG1CatchRate(LegalityAnalysis data, PK1 pk1)
|
||||
{
|
||||
var catch_rate = pk1.Catch_Rate;
|
||||
var tradeback = GBRestrictions.IsTimeCapsuleTransferred(pk1, data.Info.Moves, data.EncounterMatch);
|
||||
var result = tradeback == TimeCapsuleEvaluation.NotTransferred
|
||||
var result = tradeback is TimeCapsuleEvaluation.NotTransferred or TimeCapsuleEvaluation.BadCatchRate
|
||||
? GetWasNotTradeback(tradeback)
|
||||
: GetWasTradeback(tradeback);
|
||||
data.AddLine(result);
|
||||
@@ -185,6 +185,8 @@ CheckResult GetWasTradeback(TimeCapsuleEvaluation timeCapsuleEvalution)
|
||||
|
||||
CheckResult GetWasNotTradeback(TimeCapsuleEvaluation timeCapsuleEvalution)
|
||||
{
|
||||
if (data.Info.Moves.Any(z => z.Generation == 2))
|
||||
return GetInvalid(LG1CatchRateItem);
|
||||
var e = data.EncounterMatch;
|
||||
if (e is EncounterStatic1E {Version: GameVersion.Stadium} or EncounterTrade1)
|
||||
return GetValid(LG1CatchRateMatchPrevious); // Encounters detected by the catch rate, cant be invalid if match this encounters
|
||||
|
||||
Reference in New Issue
Block a user