mirror of
https://github.com/kwsch/PKHeX
synced 2024-11-24 13:03:06 +00:00
f4bafe0809
Closes #2607 SAV6XY/AO had GymTeams get/set, this now makes similar logic accessible for even SAV5BW/B2W2.
39 lines
No EOL
1.3 KiB
C#
39 lines
No EOL
1.3 KiB
C#
namespace PKHeX.Core
|
|
{
|
|
public interface IGymTeamInfo
|
|
{
|
|
ushort GetBadgeVictorySpecies(uint badge, uint slot);
|
|
void SetBadgeVictorySpecies(uint badge, uint slot, ushort species);
|
|
}
|
|
|
|
public static class GymTeamInfoExtensions
|
|
{
|
|
public static ushort[][] GetGymTeams(this IGymTeamInfo info)
|
|
{
|
|
ushort[][] teams = new ushort[8][];
|
|
for (uint badge = 0; badge < teams.Length; badge++)
|
|
teams[badge] = GetGymTeam(info, badge);
|
|
return teams;
|
|
}
|
|
|
|
private static ushort[] GetGymTeam(IGymTeamInfo info, uint badge)
|
|
{
|
|
var team = new ushort[6];
|
|
for (uint slot = 0; slot < team.Length; slot++)
|
|
team[slot] = info.GetBadgeVictorySpecies(badge, slot);
|
|
return team;
|
|
}
|
|
|
|
public static void SetGymTeams(this IGymTeamInfo info, ushort[][] teams)
|
|
{
|
|
for (uint badge = 0; badge < teams.Length; badge++)
|
|
info.SetGymTeam(badge, teams[badge]);
|
|
}
|
|
|
|
public static void SetGymTeam(this IGymTeamInfo info, uint badge, ushort[] team)
|
|
{
|
|
for (uint slot = 0; slot < team.Length; slot++)
|
|
info.SetBadgeVictorySpecies(badge, slot, team[slot]);
|
|
}
|
|
}
|
|
} |