mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-03-21 17:48:28 -05:00
Minor tweaks
Simplify moveset application for Z-A; less branching since they all do essentially the same thing. The API is pretty stable so the simplifications are safe.
This commit is contained in:
parent
84912a16e7
commit
de2c6151e6
|
|
@ -124,25 +124,17 @@ private void SetPINGA(PA9 pk, EncounterCriteria criteria, PersonalInfo9ZA pi)
|
|||
private void SetMoves(PA9 pk, PersonalInfo9ZA pi, byte level)
|
||||
{
|
||||
var (learn, plus) = LearnSource9ZA.GetLearnsetAndPlus(Species, Form);
|
||||
Span<ushort> moves = stackalloc ushort[4];
|
||||
PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level);
|
||||
if (Moves.HasMoves)
|
||||
{
|
||||
pk.SetMoves(Moves);
|
||||
pk.GetMoves(moves);
|
||||
PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!IsAlpha)
|
||||
{
|
||||
learn.SetEncounterMovesBackwards(level, moves, sameDescend: false);
|
||||
PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level);
|
||||
}
|
||||
else
|
||||
{
|
||||
learn.SetEncounterMovesBackwards(level, moves, sameDescend: false);
|
||||
PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level, moves[0] = pi.AlphaMove);
|
||||
}
|
||||
Span<ushort> moves = stackalloc ushort[4];
|
||||
learn.SetEncounterMovesBackwards(level, moves, sameDescend: false);
|
||||
if (pk.IsAlpha)
|
||||
PlusRecordApplicator.SetPlusFlagsSpecific(pk, pi, moves[0] = pi.AlphaMove);
|
||||
pk.SetMoves(moves);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -79,17 +79,12 @@ private void SetPINGA(PA9 pk, EncounterCriteria criteria, PersonalInfo9ZA pi)
|
|||
private void SetMoves(PA9 pk, PersonalInfo9ZA pi, byte level)
|
||||
{
|
||||
var (learn, plus) = LearnSource9ZA.GetLearnsetAndPlus(Species, Form);
|
||||
PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level);
|
||||
|
||||
Span<ushort> moves = stackalloc ushort[4];
|
||||
if (!IsAlpha)
|
||||
{
|
||||
learn.SetEncounterMovesBackwards(level, moves, sameDescend: false);
|
||||
PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level);
|
||||
}
|
||||
else
|
||||
{
|
||||
learn.SetEncounterMovesBackwards(level, moves, sameDescend: false);
|
||||
PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level, moves[0] = pi.AlphaMove);
|
||||
}
|
||||
learn.SetEncounterMovesBackwards(level, moves, sameDescend: false);
|
||||
if (pk.IsAlpha)
|
||||
PlusRecordApplicator.SetPlusFlagsSpecific(pk, pi, moves[0] = pi.AlphaMove);
|
||||
pk.SetMoves(moves);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -101,25 +101,17 @@ private void SetPINGA(PA9 pk, EncounterCriteria criteria, PersonalInfo9ZA pi)
|
|||
private void SetMoves(PA9 pk, PersonalInfo9ZA pi, byte level)
|
||||
{
|
||||
var (learn, plus) = LearnSource9ZA.GetLearnsetAndPlus(Species, Form);
|
||||
Span<ushort> moves = stackalloc ushort[4];
|
||||
PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level);
|
||||
if (Moves.HasMoves)
|
||||
{
|
||||
pk.SetMoves(Moves);
|
||||
pk.GetMoves(moves);
|
||||
PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!IsAlpha)
|
||||
{
|
||||
learn.SetEncounterMovesBackwards(level, moves, sameDescend: false);
|
||||
PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level);
|
||||
}
|
||||
else
|
||||
{
|
||||
learn.SetEncounterMovesBackwards(level, moves, sameDescend: false);
|
||||
PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level, moves[0] = pi.AlphaMove);
|
||||
}
|
||||
Span<ushort> moves = stackalloc ushort[4];
|
||||
learn.SetEncounterMovesBackwards(level, moves, sameDescend: false);
|
||||
if (pk.IsAlpha)
|
||||
PlusRecordApplicator.SetPlusFlagsSpecific(pk, pi, moves[0] = pi.AlphaMove);
|
||||
pk.SetMoves(moves);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -127,25 +127,17 @@ private void SetPINGA(PA9 pk, EncounterCriteria criteria, PersonalInfo9ZA pi)
|
|||
private void SetMoves(PA9 pk, PersonalInfo9ZA pi, byte level)
|
||||
{
|
||||
var (learn, plus) = LearnSource9ZA.GetLearnsetAndPlus(Species, Form);
|
||||
Span<ushort> moves = stackalloc ushort[4];
|
||||
PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level);
|
||||
if (Moves.HasMoves)
|
||||
{
|
||||
pk.SetMoves(Moves);
|
||||
pk.GetMoves(moves);
|
||||
PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!IsAlpha)
|
||||
{
|
||||
learn.SetEncounterMovesBackwards(level, moves, sameDescend: false);
|
||||
PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level);
|
||||
}
|
||||
else
|
||||
{
|
||||
learn.SetEncounterMovesBackwards(level, moves, sameDescend: false);
|
||||
PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, level, moves[0] = pi.AlphaMove);
|
||||
}
|
||||
Span<ushort> moves = stackalloc ushort[4];
|
||||
learn.SetEncounterMovesBackwards(level, moves, sameDescend: false);
|
||||
if (pk.IsAlpha)
|
||||
PlusRecordApplicator.SetPlusFlagsSpecific(pk, pi, moves[0] = pi.AlphaMove);
|
||||
pk.SetMoves(moves);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -83,7 +83,6 @@ public int Evolve(Span<EvoCriteria> result, PKM pk, EvolutionOrigin enc, Evoluti
|
|||
|
||||
private static bool IsUnavailableEvoChain(ushort species, byte form) => species switch
|
||||
{
|
||||
// TODO DLC ZA: ALT Evolutions
|
||||
// Split-evolution Alolans can't be reached in any game Gen8+. Must have been via Gen7.
|
||||
(int)Raichu when form == 1 => true,
|
||||
(int)Exeggutor when form == 1 => true,
|
||||
|
|
@ -174,7 +173,7 @@ private static void RevertMutatedForms(ref EvoCriteria evo)
|
|||
// Eager check: only reversions are if form is not 0.
|
||||
if (form == 0)
|
||||
return;
|
||||
// TODO DLC ZA: Is this necessary?
|
||||
// None present in Z-A.
|
||||
//if (species is (ushort)Dialga or (ushort)Palkia or (ushort)Arceus or (ushort)Silvally)
|
||||
// evo = evo with { Form = 0 }; // Normal
|
||||
if (FormInfo.IsBattleOnlyForm(species, form, Latest.Generation))
|
||||
|
|
|
|||
|
|
@ -116,13 +116,9 @@ private static void GetInitialMoves(IEncounter9a enc, PA9 pa9, Span<ushort> move
|
|||
}
|
||||
var level = Math.Max((byte)1, pa9.MetLevel);
|
||||
var learn = LearnSource9ZA.Instance.GetLearnset(enc.Species, enc.Form);
|
||||
if (!enc.IsAlpha)
|
||||
{
|
||||
learn.SetEncounterMovesBackwards(level, moves, sameDescend: false);
|
||||
return;
|
||||
}
|
||||
learn.SetEncounterMovesBackwards(level, moves, sameDescend: false);
|
||||
moves[0] = PersonalTable.ZA[enc.Species, enc.Form].AlphaMove;
|
||||
if (enc.IsAlpha)
|
||||
moves[0] = PersonalTable.ZA[enc.Species, enc.Form].AlphaMove;
|
||||
}
|
||||
|
||||
private void CheckFlagsTM(LegalityAnalysis data, PA9 pa9)
|
||||
|
|
|
|||
|
|
@ -489,13 +489,12 @@ public override PA9 ConvertToPKM(ITrainerInfo tr, EncounterCriteria criteria)
|
|||
private void SetMoves(byte currentLevel, PA9 pk, PersonalInfo9ZA pi)
|
||||
{
|
||||
var (learn, plus) = LearnSource9ZA.GetLearnsetAndPlus(Species, Form);
|
||||
if (Move1 == 0) // Just in case they forget to set moves on an event.
|
||||
{
|
||||
Span<ushort> moves = stackalloc ushort[4];
|
||||
learn.SetEncounterMoves(currentLevel, moves);
|
||||
pk.SetMoves(moves);
|
||||
}
|
||||
PlusRecordApplicator.SetPlusFlagsEncounter(pk, pi, plus, currentLevel);
|
||||
if (Move1 != 0) // Just in case they forget to set moves on an event.
|
||||
return;
|
||||
Span<ushort> moves = stackalloc ushort[4];
|
||||
learn.SetEncounterMoves(currentLevel, moves);
|
||||
pk.SetMoves(moves);
|
||||
}
|
||||
|
||||
private DateOnly GetSuggestedDate()
|
||||
|
|
|
|||
|
|
@ -279,6 +279,6 @@ private void PopulateFromCore(PKH pkh)
|
|||
Ability = (ushort)pi.GetAbilityAtIndex(index);
|
||||
|
||||
var level = Experience.GetLevel(pkh.EXP, pi.EXPGrowth);
|
||||
this.ResetMoves(pkh.Species, pkh.Form, level, LearnSource9ZA.Instance, EntityContext.Gen9);
|
||||
this.ResetMoves(pkh.Species, pkh.Form, level, LearnSource9ZA.Instance, EntityContext.Gen9a);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user