Update EncounterTrade4RanchGift.cs

This commit is contained in:
Kurt
2023-08-17 08:26:50 -07:00
parent 9855382b0a
commit bfc24dd5c2

View File

@@ -80,6 +80,7 @@ public PK4 ConvertToPKM(ITrainerInfo tr, EncounterCriteria criteria)
var pk = new PK4
{
Species = Species,
Form = Form,
CurrentLevel = actualLevel,
Met_Location = Location,
Met_Level = Level,
@@ -126,11 +127,13 @@ private void SetPINGA(PK4 pk, EncounterCriteria criteria)
public bool IsMatchExact(PKM pk, EvoCriteria evo)
{
if (pk.Met_Level != Level)
if (!IsMatchLevel(pk, evo))
return false;
if (pk.ID32 != ID32)
return false;
if (!IsMatchNatureGenderShiny(pk))
return false;
if (pk.ID32 != ID32)
if (!IsMatchLocation(pk))
return false;
if (evo.Form != Form && !FormInfo.IsFormChangeable(Species, Form, pk.Form, Context, pk.Context))
return false;
@@ -143,6 +146,26 @@ public bool IsMatchExact(PKM pk, EvoCriteria evo)
return true;
}
private bool IsMatchLocation(PKM pk)
{
// Met location is lost on transfer
if (pk is not G4PKM pk4)
return true;
var met = pk4.Met_Location;
return met == Location;
}
private bool IsMatchLevel(PKM pk, EvoCriteria evo)
{
if (pk.Format != 4) // Met Level lost on PK4=>PK5
return evo.LevelMax >= Level;
if (MetLocation != default)
return pk.Met_Level == Level;
return pk.Met_Level >= LevelMin;
}
private bool IsMatchNatureGenderShiny(PKM pk)
{
if (pk.Gender != Gender)