private static void PopulateGen4Tutors() { var tutors = Data.UnpackMini(Util.GetBinaryResource("tutors_g4.pkl"), "g4"); for (int i = 0; i <= Legal.MaxSpeciesID_4; i++) { HGSS[i].AddTypeTutors(tutors[i]); } }
private static void PopulateGen3Tutors() { // Update Gen3 data with Emerald's data, FR/LG is a subset of Emerald's compatibility. var TMHM = Data.UnpackMini(Util.GetBinaryResource("hmtm_g3.pkl"), "g3"); var tutors = Data.UnpackMini(Util.GetBinaryResource("tutors_g3.pkl"), "g3"); for (int i = 0; i <= Legal.MaxSpeciesID_3; i++) { E[i].AddTMHM(TMHM[i]); E[i].AddTypeTutors(tutors[i]); } }
static EvolutionTree() { // Evolution tables need Personal Tables initialized beforehand, hence why the EvolutionTree data is initialized here. byte[] get(string resource) => Util.GetBinaryResource($"evos_{resource}.pkl"); byte[][] unpack(string resource) => Data.UnpackMini(get(resource), resource); Evolves1 = new EvolutionTree(new[] { get("rby") }, GameVersion.RBY, PersonalTable.Y, Legal.MaxSpeciesID_1); Evolves2 = new EvolutionTree(new[] { get("gsc") }, GameVersion.GSC, PersonalTable.C, Legal.MaxSpeciesID_2); Evolves3 = new EvolutionTree(new[] { get("g3") }, GameVersion.RS, PersonalTable.RS, Legal.MaxSpeciesID_3); Evolves4 = new EvolutionTree(new[] { get("g4") }, GameVersion.DP, PersonalTable.DP, Legal.MaxSpeciesID_4); Evolves5 = new EvolutionTree(new[] { get("g5") }, GameVersion.BW, PersonalTable.BW, Legal.MaxSpeciesID_5); Evolves6 = new EvolutionTree(unpack("ao"), GameVersion.ORAS, PersonalTable.AO, Legal.MaxSpeciesID_6); Evolves7 = new EvolutionTree(unpack("sm"), GameVersion.SM, PersonalTable.SM, Legal.MaxSpeciesID_7); }
static EvolutionTree() { // Evolution tables need Personal Tables initialized beforehand, hence why the EvolutionTree data is initialized here. byte[] get(string resource) => Util.GetBinaryResource($"evos_{resource}.pkl"); byte[][] unpack(string resource) => Data.UnpackMini(get(resource), resource); Evolves1 = new EvolutionTree(new[] { get("rby") }, GameVersion.Gen1, PersonalTable.Y, Legal.MaxSpeciesID_1); Evolves2 = new EvolutionTree(new[] { get("gsc") }, GameVersion.Gen2, PersonalTable.C, Legal.MaxSpeciesID_2); Evolves3 = new EvolutionTree(new[] { get("g3") }, GameVersion.Gen3, PersonalTable.RS, Legal.MaxSpeciesID_3); Evolves4 = new EvolutionTree(new[] { get("g4") }, GameVersion.Gen4, PersonalTable.DP, Legal.MaxSpeciesID_4); Evolves5 = new EvolutionTree(new[] { get("g5") }, GameVersion.Gen5, PersonalTable.BW, Legal.MaxSpeciesID_5); Evolves6 = new EvolutionTree(unpack("ao"), GameVersion.Gen6, PersonalTable.AO, Legal.MaxSpeciesID_6); Evolves7 = new EvolutionTree(unpack("uu"), GameVersion.Gen7, PersonalTable.USUM, Legal.MaxSpeciesID_7_USUM); // There's always oddballs. Evolves7.FixEvoTreeSM(); }
/// <summary> /// Direct fetch for <see cref="EncounterArea"/> data; can also be used to fetch supplementary encounter streams. /// </summary> /// <param name="ident">Unpacking identification ASCII characters (first two bytes of binary)</param> /// <param name="resource">Resource name (will be prefixed with "encounter_"</param> /// <returns>Array of encounter areas</returns> internal static EncounterArea[] GetEncounterTables(string ident, string resource) { byte[] mini = Util.GetBinaryResource($"encounter_{resource}.pkl"); return(EncounterArea.GetArray(Data.UnpackMini(mini, ident))); }
static byte[][] unpack(string resource) => Data.UnpackMini(get(resource), resource);
/// <summary> /// Direct fetch for <see cref="EncounterArea"/> data; can also be used to fetch supplementary encounter streams. /// </summary> /// <param name="ident">Unpacking identification ASCII characters (first two bytes of binary)</param> /// <param name="resource">Resource name (will be prefixed with "encounter_"</param> /// <returns>Array of encounter areas</returns> internal static T[] GetEncounterTables8 <T>(string ident, string resource) where T : EncounterAreaSH, new() { byte[] mini = Util.GetBinaryResource($"encounter_{resource}.pkl"); return(EncounterAreaSH.GetArray <T>(Data.UnpackMini(mini, ident))); }