private void ImportBattleFromTypeAndFile(int selectedFileType, string fileName, bool setBattle = true) { DataOptions options = new DataOptions(); if (selectedFileType == (int)Import_Filters.json) { var importedBattle = XmlHelper.DeserializeFromFile(fileName); importedBattle.battle.msbtUpdated = true; // We want to be sure we write the new title when we save. options.AddDataTbl(importedBattle.battle); options.AddRangeDataTbl(importedBattle.fighters); options.AddDataTbl(importedBattle.spirit); } else if (selectedFileType == (int)Import_Filters.prc) { options = XmlHelper.ReadXML(fileName, dataTbls.config.labels_file_location); } SaveImportToDataTbls(options); if (setBattle) { var battle = (Battle)options.GetItemsOfType(typeof(Battle)).FirstOrDefault(); SetSelectedBattleByBattle(battle); } }
private void ImportBattleOverFile_Click(object sender, EventArgs e) { var importDialog = FileHelper.GetImportBattleFileDialog(title: "Import Custom Spirit Over Current.", initialDirectory: dataTbls.config.file_directory_custom_battles); if (importDialog.ShowDialog() == CommonFileDialogResult.Ok && !String.IsNullOrWhiteSpace(importDialog?.FileName)) { DataOptions options = new DataOptions(); if (importDialog.SelectedFileTypeIndex == (int)Import_Filters.json) { var importedBattle = XmlHelper.DeserializeFromFile(importDialog.FileName); importedBattle.battle.msbtUpdated = true; // We want to be sure we write the new title when we save. options.AddDataTbl(importedBattle.battle); options.AddRangeDataTbl(importedBattle.fighters); } else if (importDialog.SelectedFileTypeIndex == (int)Import_Filters.prc) { options = XmlHelper.ReadXML(importDialog.FileName, dataTbls.config.labels_file_location); } options.SetBattleIdsForAll(dataTbls.selectedBattle.battle_id); var battle = (Battle)options.GetItemsOfType(typeof(Battle)).FirstOrDefault(); SaveImportToDataTbls(options); SetSelectedBattleByBattle(battle); } }
public List <string> AddResultsToDataTbls(DataOptions results) { var fileDbType = new List <string>(); var types = results.GetContainerTypes(); if (types.Contains(typeof(Battle)) && types.Contains(typeof(Fighter))) { if (types.Contains(typeof(Battle))) { dataTbls.battleData = (BattleDataOptions)results.GetDataOptionsFromUnderlyingType(typeof(Battle)); fileDbType.Add("Battle"); } if (types.Contains(typeof(Fighter))) { dataTbls.fighterData = (FighterDataOptions)results.GetDataOptionsFromUnderlyingType(typeof(Fighter)); fileDbType.Add("Fighter"); } buildFighterDataTab(dataTbls.battleData.GetBattleAtIndex(0).battle_id); } if (types.Exists(x => x.IsSubclassOf(typeof(Event)))) { dataTbls.eventData = (EventDataOptions)results.GetDataOptionsFromUnderlyingType(typeof(Event)); dataTbls.eventData.SetFoundEventTypes(dataTbls.battleData.event_type); //Some unique values in battleData, so we combine the two sets. fileDbType.Add("Event"); } if (types.Contains(typeof(Item))) { dataTbls.itemData = (ItemDataOptions)results.GetDataOptionsFromUnderlyingType(typeof(Item)); var itemEvents = dataTbls.itemData.GetAsEvents(); dataTbls.eventData.AddUniqueEvents(itemEvents); fileDbType.Add("Item"); } if (types.Contains(typeof(SpiritFighter))) { dataTbls.spiritFighterData = (SpiritFighterDataOptions)results.GetDataOptionsFromUnderlyingType(typeof(SpiritFighter)); fileDbType.Add("Spirit Fighter"); } if (types.Contains(typeof(SpiritBoard))) { dataTbls.spiritBoardData = (SpiritBoardDataOptions)results.GetDataOptionsFromUnderlyingType(typeof(SpiritBoard)); fileDbType.Add("Spirit Board"); } if (types.Contains(typeof(Spirit))) { dataTbls.spiritData = (SpiritDataOptions)results.GetDataOptionsFromUnderlyingType(typeof(Spirit)); fileDbType.Add("Spirit"); } if (types.Contains(typeof(SpiritAbilities))) { var abilities = results.GetItemsOfType(typeof(SpiritAbilities)); var names = abilities?.Select(x => x?.GetPropertyValueFromName(SpiritAbilities.fieldKey)).ToList(); dataTbls.battleData.AddRecommendedSkills(names); dataTbls.fighterData.AddNewAbilities(names); fileDbType.Add("Spirit Ability"); } if (types.Contains(typeof(Bgm))) { var bgms = results.GetItemsOfType(typeof(Bgm)); var names = bgms?.Select(x => x?.GetPropertyValueFromName(Bgm.fieldKey)); dataTbls.battleData.stage_bgm = names; fileDbType.Add("BGM"); } if (types.Contains(typeof(Stage))) { var stages = results.GetItemsOfType(typeof(Stage)); var names = stages?.Select(x => x?.GetPropertyValueFromName(Stage.fieldKey)); dataTbls.battleData.ui_stage_id = names; fileDbType.Add("Stage"); } return(fileDbType); }