public void EditItems() { var obj = ROM[GameFile.ItemStats]; // mini var data = obj[0]; var items = Item8.GetArray(data); var cache = new DataCache <Item8>(items); using var form = new GenericEditor <Item8>(cache, ROM.GetStrings(TextName.ItemNames), "Item Editor", Randomize); form.ShowDialog(); if (!form.Modified) { cache.CancelEdits(); return; } void Randomize() { var tradeEvos = new[] { 221, 226, 227, 233, 235, 252, 321, 322, 323, 324, 325, 573, 646, 647 }; foreach (var item in items) { if (item.ItemSprite == -1 || !tradeEvos.Contains(item.ItemID)) { continue; } item.Boost0 = 8; // evo stone item.EffectField = 6; // use effect item.CanUseOnPokemon = true; } } obj[0] = Item8.SetArray(items, data); }
public void EditRental() { var obj = ROM[GameFile.Rentals]; var data = obj[0]; var rentals = FlatBufferConverter.DeserializeFrom <Rental8Archive>(data); var cache = new DataCache <Rental8>(rentals.Table); var names = rentals.Table.Select((z, i) => $"{i:000} {z.Hash1:X16}").ToArray(); using var form = new GenericEditor <Rental8>(cache, names, "Rental Editor"); form.ShowDialog(); if (!form.Modified) { cache.CancelEdits(); return; } obj[0] = FlatBufferConverter.SerializeFrom(rentals); }
public void EditTrainers() { var folder = ROM.GetFilteredFolder(GameFile.TrainerData); var cache = new DataCache <TrData8a>(folder) { Create = FlatBufferConverter.DeserializeFrom <TrData8a>, Write = FlatBufferConverter.SerializeFrom, }; var names = folder.GetPaths().Select(Path.GetFileNameWithoutExtension).ToArray(); using var form = new GenericEditor <TrData8a>(cache, names, "Trainers", Randomize, canSave: true); form.ShowDialog(); void Randomize() { var settings = EditUtil.Settings.Species; var rand = new SpeciesRandomizer(ROM.Info, Data.PersonalData); rand.Initialize(settings, GetSpeciesBanlist()); for (int i = 0; i < cache.Length; i++) { foreach (var t in cache[i].Team) { t.Species = rand.GetRandomSpecies(t.Species); t.Form = GetRandomForm(t.Species); t.Gender = (int)FixedGender.Random; t.Nature = NatureType8a.Random; t.Move_01.Move = t.Move_02.Move = t.Move_03.Move = t.Move_04.Move = 0; t.Move_01.Mastered = t.Move_02.Mastered = t.Move_03.Mastered = t.Move_04.Mastered = true; t.Shiny = Randomization.Util.Random.Next(0, 100 + 1) < 3; t.IsOybn = Randomization.Util.Random.Next(0, 100 + 1) < 3; } } } if (!form.Modified) { cache.CancelEdits(); } else { cache.Save(); } }
public void EditItems() { var obj = ROM.GetFilteredFolder(GameFile.ItemStats, z => new FileInfo(z).Length == 36); var cache = new DataCache <Item>(obj) { Create = Item.FromBytes, Write = item => item.Write(), }; using var form = new GenericEditor <Item>(cache, ROM.GetStrings(TextName.ItemNames), "Item Editor"); form.ShowDialog(); if (!form.Modified) { cache.CancelEdits(); } else { cache.Save(); } }
public void EditMoves() { var obj = ROM[GameFile.MoveStats]; // mini var cache = new DataCache <Move7>(obj) { Create = data => new Move7(data), Write = move => move.Write(), }; using var form = new GenericEditor <Move7>(cache, ROM.GetStrings(TextName.MoveNames), "Move Editor"); form.ShowDialog(); if (!form.Modified) { cache.CancelEdits(); } else { cache.Save(); } }
public void EditMoves() { var obj = ROM[GameFile.MoveStats]; // mini var cache = new DataCache <Waza8>(obj) { Create = FlatBufferConverter.DeserializeFrom <Waza8>, Write = FlatBufferConverter.SerializeFrom, }; using var form = new GenericEditor <Waza8>(cache, ROM.GetStrings(TextName.MoveNames), "Move Editor"); form.ShowDialog(); if (!form.Modified) { cache.CancelEdits(); return; } cache.Save(); ROM.Data.MoveData.ClearAll(); // force reload if used again }