private void BrowseBtn_Click(object sender, RoutedEventArgs e) { if (ActualBoss == null) { ActualBoss = new Core.Classes.Boss(); } Microsoft.Win32.OpenFileDialog openDialog = new Microsoft.Win32.OpenFileDialog() { DefaultExt = ".mdl", Filter = "Model File (*.mdl)|*.mdl" }; bool?openResult = openDialog.ShowDialog(); if (openResult == true) { Match modelPathMatch = Regex.Match(openDialog.FileName + ":", @"\\models\\(.*?):", RegexOptions.IgnoreCase); if (modelPathMatch.Success) { ActualBoss.Model = string.Format("models\\{0}", modelPathMatch.Groups[1].Value); } else { MessageBox.Show("The model must be located in a folder called models.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } } }
private void AddBtn_Click(object sender, RoutedEventArgs e) { if (ActualBoss == null) { ActualBoss = new Core.Classes.Boss(); } Microsoft.Win32.OpenFileDialog openDialog = new Microsoft.Win32.OpenFileDialog() { DefaultExt = "*.*", Filter = "All Files (*.*)|*.*", Multiselect = true }; bool?openResult = openDialog.ShowDialog(); if (openResult == true) { for (int file = 0; file < openDialog.FileNames.Length; file++) { for (int folder = 0; folder < allowedFolders.Length; folder++) { Match modelPathMatch = Regex.Match(openDialog.FileNames[file] + ":", string.Format(@"\\{0}\\(.*?):", allowedFolders[folder]), RegexOptions.IgnoreCase); if (modelPathMatch.Success) { ActualBoss.CustomFiles.Add(string.Format("{0}\\{1}", allowedFolders[folder], modelPathMatch.Groups[1].Value)); break; } } } } }
private async Task <bool> SaveBoss(Core.Classes.Boss Boss) { if (!string.IsNullOrWhiteSpace(ActualBossPath)) { return(await Core.StorageCore <Core.Classes.Boss> .GenericSaveObject(Boss, ActualBossPath)); } Microsoft.Win32.SaveFileDialog saveDialog = new Microsoft.Win32.SaveFileDialog() { DefaultExt = ".ff2boss", Filter = "FF2 Boss File (*.ff2boss)|*.ff2boss" }; bool?saveResult = saveDialog.ShowDialog(); if (saveResult == true) { if (await Core.StorageCore <Core.Classes.Boss> .GenericSaveObject(Boss, saveDialog.FileName)) { ActualBossPath = saveDialog.FileName; return(true); } } return(false); }
private async void OpenMI_Click(object sender, RoutedEventArgs e) { if (!await CheckIfBossHasChanges()) { return; } Microsoft.Win32.OpenFileDialog openDialog = new Microsoft.Win32.OpenFileDialog() { DefaultExt = ".ff2boss", Filter = "FF2 Boss File (*.ff2boss)|*.ff2boss" }; bool?openResult = openDialog.ShowDialog(); if (openResult == true) { Core.Classes.Boss tmpBoss = await Core.StorageCore <Core.Classes.Boss> .GenericGetObject(openDialog.FileName); if (tmpBoss != null) { ActualBoss = tmpBoss; ActualBossPath = openDialog.FileName; PrevBoss = tmpBoss.Clone(); UpdateBossInViews(); } } }
private async void SaveMI_Click(object sender, RoutedEventArgs e) { ActualBoss = MergeBossesFromViews(); await Core.StorageCore <Core.Classes.Boss> .GenericSaveObject(ActualBoss, DefaultExt : ".ff2boss", ExtFilter : "FF2 Boss File (*.ff2boss)|*.ff2boss" ); }
private void AddBtn_Click(object sender, RoutedEventArgs e) { if (ActualBoss == null) { ActualBoss = new Core.Classes.Boss(); } ActualBoss.Descriptions.Add(new Core.Classes.Description()); }
private async void SaveMI_Click(object sender, RoutedEventArgs e) { ActualBoss = MergeBossesFromViews(); if (!await SaveBoss(ActualBoss)) { return; } PrevBoss = ActualBoss.Clone(); }
private async void ImportCFGMI_Click(object sender, RoutedEventArgs e) { Core.Classes.Boss tmpBoss = await Core.CFGCore.ImportBoss(); if (tmpBoss != null) { ActualBoss = tmpBoss; UpdateBossInViews(); } }
private void AddBtn_Click(object sender, RoutedEventArgs e) { if (ActualBoss == null) { ActualBoss = new Core.Classes.Boss(); } if (ActualBoss.Weapons.Count < 3) { ActualBoss.Weapons.Add(new Core.Classes.Weapon()); } AddBtn.IsEnabled = ActualBoss.Weapons.Count < 3; }
private async void NewMI_Click(object sender, RoutedEventArgs e) { if (!await CheckIfBossHasChanges()) { return; } ActualBoss = new Core.Classes.Boss(); ActualBossPath = ""; PrevBoss = null; UpdateBossInViews(); }
private async void ExportCFGBtn_Click(object sender, RoutedEventArgs e) { if (!BasicInfo.CheckTabReady(true) || !Desc.CheckTabReady(true) || !Weps.CheckTabReady(true) || !Abilities.CheckTabReady(true)) { return; } ActualBoss = MergeBossesFromViews(); await Core.CFGCore.ExportBoss(ActualBoss); }
private async void OpenMI_Click(object sender, RoutedEventArgs e) { Core.Classes.Boss tmpBoss = await Core.StorageCore <Core.Classes.Boss> .GenericGetObject( DefaultExt : ".ff2boss", ExtFilter : "FF2 Boss File (*.ff2boss)|*.ff2boss" ); if (tmpBoss != null) { ActualBoss = tmpBoss; UpdateBossInViews(); } }
private async Task <bool> CheckIfBossHasChanges() { Core.Classes.Boss mergedBoss = MergeBossesFromViews(); if ((PrevBoss == null || !mergedBoss.IsClassEqual(PrevBoss)) && !mergedBoss.IsClassEmpty()) { if (MessageBox.Show("Do you want to save the current Boss Configuration?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { return(await SaveBoss(mergedBoss)); } } return(true); }
private void DeleteBtn_Click(object sender, RoutedEventArgs e) { if (sender == null) { return; } if (((FrameworkElement)sender).DataContext is Core.Classes.Weapon wep) { if (ActualBoss == null) { ActualBoss = new Core.Classes.Boss(); } ActualBoss.Weapons.Remove(wep); AddBtn.IsEnabled = ActualBoss.Weapons.Count < 3; } }
private Core.Classes.Boss MergeBossesFromViews() { Core.Classes.Boss neoBoss = new Core.Classes.Boss(); if (BasicInfo.ActualBoss != null) { neoBoss.Name = BasicInfo.ActualBoss.Name; neoBoss.Class = BasicInfo.ActualBoss.Class; neoBoss.Model = BasicInfo.ActualBoss.Model; neoBoss.RageDist = BasicInfo.ActualBoss.RageDist; neoBoss.RageDamage = BasicInfo.ActualBoss.RageDamage; neoBoss.Health = BasicInfo.ActualBoss.Health; neoBoss.Speed = BasicInfo.ActualBoss.Speed; neoBoss.Lives = BasicInfo.ActualBoss.Lives; neoBoss.BlockVoice = BasicInfo.ActualBoss.BlockVoice; } if (Desc.ActualBoss != null) { neoBoss.Descriptions = Desc.ActualBoss.Descriptions; } if (Weps.ActualBoss != null) { neoBoss.Weapons = Weps.ActualBoss.Weapons; } if (Abilities.ActualBoss != null) { neoBoss.Abilities = Abilities.ActualBoss.Abilities; } if (Sounds.ActualBoss != null) { neoBoss.Sounds = Sounds.ActualBoss.Sounds; } if (CustomFiles.ActualBoss != null) { neoBoss.CustomFiles = CustomFiles.ActualBoss.CustomFiles; } return(neoBoss); }
private void NewMI_Click(object sender, RoutedEventArgs e) { ActualBoss = new Core.Classes.Boss(); UpdateBossInViews(); }