// Event handler: Worker_DoWork private void Worker_DoWork_Handler(object sender, DoWorkEventArgs evt) { BackgroundWorker worker = (BackgroundWorker)sender; int progress = 0; foreach (Device device in queryDevices) { string errorMessage = device.FindFirmwareUpdate(Dispatcher); if (errorMessage != null) { int result = -1; Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { result = MessageBoxEx2.Show(new MessageBoxEx2Params { CaptionText = JCstring.MessageCaptionError, MessageText = errorMessage.Unescape(), Image = MessageBoxEx2Image.Error, ButtonText = new string[] { JCstring.DialogButtonTextSkip, JCstring.DialogButtonTextCancel }, Owner = this }); })); if (result != 0) // Cancel button, close box { break; } } worker.ReportProgress(++progress); if (worker.CancellationPending) { break; } } }
private void WorldMapViewForm_Click(object sender, EventArgs e) { if (selectName == "") { return; } foreach (var mapIconConfig in ConfigData.SceneDict.Values) { if (mapIconConfig.Icon == selectName && mapIconConfig.Id != UserProfile.InfoBasic.MapId) { //if (UserProfile.InfoBasic.Level < mapIconConfig.Level) //{ // return; //} if (MessageBoxEx2.Show("是否花10钻石立刻移动到该地区?") == DialogResult.OK) { if (UserProfile.InfoBag.PayDiamond(10)) { UserProfile.InfoBasic.Position = 0;//如果是0,后面流程会随机一个位置 Scene.Instance.ChangeMap(mapIconConfig.Id, true); Close(); } } return; } } }
// Event handler: WebClient_DownloadFileCompleted void WebClient_DownloadFileCompleted_Handler(object sender, AsyncCompletedEventArgs evt) { if (evt.Cancelled) { try { File.Delete(downloadFilePath); } catch { } } else { if (evt.Error is Exception ex) { Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { MessageBoxEx2.Show(new MessageBoxEx2Params { CaptionText = JCstring.MessageCaptionError, MessageText = ex.Message, Image = MessageBoxEx2Image.Error, ButtonText = new string[] { JCstring.DialogButtonTextOk }, Owner = this }); })); } } completed = true; Close(); }
private bool SaveUnsavedData() { if (!Devices.IsModified) { return(true); } while (true) { int result = MessageBoxEx2.Show(new MessageBoxEx2Params { CaptionText = JCstring.MessageCaptionUnsavedData, MessageText = JCstring.MessageTextUnsavedData.Unescape(), Image = MessageBoxEx2Image.Warning, ButtonText = new string[] { JCstring.DialogButtonTextYes, JCstring.DialogButtonTextNo, JCstring.DialogButtonTextCancel }, Owner = this }); switch (result) { case 0: // Yes button if (SaveDeviceCollection()) { return(true); } break; case 1: // No button return(true); default: // Cancel button, close box return(false); } } }
// Event handler: Settings_PropertyChanged private void Settings_PropertyChanged_Handler(object sender, PropertyChangedEventArgs evt) { Settings settings = Settings.Default; switch (evt.PropertyName) { case nameof(settings.JuisReleaseShowBuildNumber): Devices_RefreshView(); break; case nameof(settings.RecentFilesMax): Backstage_PopulateRecentFiles(); break; case nameof(settings.UserInterfaceLanguage): // Display message _after_ the setting has been updated on screen regardless of event handler order. Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => { int result = MessageBoxEx2.Show(new MessageBoxEx2Params() { MessageText = JCstring.MessageTextRestartLanguageChange.Unescape(), CaptionText = JCstring.MessageCaptionProgramRestartRequired, Image = MessageBoxEx2Image.Warning, ButtonText = new string[] { JCstring.DialogButtonTextYes, JCstring.DialogButtonTextNo }, Owner = this }); if (result == 0) // Yes button { App.Restart(); } })); break; } }
private void ShowErrorMessage(string message) { MessageBoxEx2.Show(new MessageBoxEx2Params { CaptionText = JCstring.MessageCaptionError, MessageText = message, Image = MessageBoxEx2Image.Error, ButtonText = new string[] { JCstring.DialogButtonTextOk }, Owner = this }); }
private void bitmapButtonFresh_Click(object sender, EventArgs e) { if (MessageBoxEx2.Show("是否花10钻石刷新所有素材?") == DialogResult.OK) { if (UserProfile.InfoBag.PayDiamond(10)) { RefreshAllPieceData(); RefreshInfo(); } } }
private void bitmapButtonRefresh_Click(object sender, EventArgs e) { if (MessageBoxEx2.Show("是否花5钻石增加一条素材?") == DialogResult.OK) { if (UserProfile.InfoBag.PayDiamond(5)) { AddPieceData(); RefreshInfo(); } } }
private void bitmapButtonDouble_Click(object sender, EventArgs e) { if (MessageBoxEx2.Show("是否花5钻石翻倍所有素材数量?") == DialogResult.OK) { if (UserProfile.InfoBag.PayDiamond(5)) { DoubleAllPieceData(); RefreshInfo(); } } }
private void bitmapButtonC3_Click(object sender, EventArgs e) { if (MessageBoxEx2.Show("是否花10钻石随机增加经验瓶50-100点经验?") == DialogResult.OK) { if (UserProfile.InfoBag.PayDiamond(10)) { UserProfile.InfoRecord.AddRecordById((int)MemPlayerRecordTypes.HeroExpPoint, NarlonLib.Math.MathTool.GetRandom(50, 100)); panelBack.Invalidate(); } } }
private void Backstage_CmdAbout_Executed(object sender, ExecutedRoutedEventArgs evt) { Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => { MessageBoxEx2.Show(new MessageBoxEx2Params { CaptionText = JCstring.MessageCaptionAbout, MessageText = $"{App.GetProgramInfo()}\n\n{App.GetCopyright()}", Image = MessageBoxEx2Image.Information, ButtonText = new string[] { JCstring.DialogButtonTextOk }, Owner = this }); })); }
private void bitmapButtonRefresh_Click(object sender, EventArgs e) { if (MessageBoxEx2.Show("是否花10钻石立刻刷新卡片?") == DialogResult.OK) { if (UserProfile.InfoBag.PayDiamond(10)) { UserProfile.InfoRecord.SetRecordById((int)MemPlayerRecordTypes.LastCardShopTime, 0); ChangeShop(shelf); AddFlowCenter("卡片商店数据刷新", "Lime"); } } }
private void buttonDelD_Click(object sender, EventArgs e) { if (MessageBoxEx2.Show("确定要清除卡组内所有卡片?") == DialogResult.OK) { for (int i = 0; i < GameConstants.DeckCardCount; i++) { UserProfile.InfoCard.SelectedDeck.SetCardAt(i, -1); } } InstallDeckCard(); cardRegion.MenuRefresh(); Invalidate(); }
private void CmdQuery_Executed(object sender, ExecutedRoutedEventArgs evt) { try { DeviceData.QueryDevice(); } catch (Exception ex) { MessageBoxEx2.Show(new MessageBoxEx2Params { CaptionText = JCstring.MessageCaptionError, MessageText = string.Format(CultureInfo.CurrentCulture, JCstring.MessageTextDeviceQueryFailed.Unescape(), ex.Message), Image = MessageBoxEx2Image.Error, ButtonText = new string[] { JCstring.DialogButtonTextOk }, Owner = this }); } }
private void bitmapButtonC1_Click(object sender, EventArgs e) { if (fuelAim > 0) { return; } if (MessageBoxEx2.Show("是否花10钻石开始转转盘?") == DialogResult.OK) { if (UserProfile.InfoBag.PayDiamond(10)) { fuel = 0; fuelAim = NarlonLib.Math.MathTool.GetRandom(48, 66); } } }
protected override void OnClick(MenuItemData target) { if (target.Type == "activate") { int result = UserProfile.InfoCard.SelectedDeck.AddCard(TargetCard); if (result != HSErrorTypes.OK) { Form.AddFlowCenter(HSErrorTypes.GetDescript(result), "Red"); } else { Form.ActivateCard(); } } else if (target.Type == "remove") { UserProfile.InfoCard.SelectedDeck.RemoveCardById(TargetCard.BaseId); Form.ActivateCard(); } else if (target.Type == "delete") { if (UserProfile.InfoCard.GetCardExp(TargetCard.BaseId) <= 0) { Form.AddFlowCenter(HSErrorTypes.GetDescript(HSErrorTypes.CardExpNotEnough), "Red"); } else if (MessageBoxEx2.Show("确定要分解多余的碎片?") == DialogResult.OK) { UserProfile.InfoCard.RemoveCardPiece(TargetCard.BaseId, true); } } else if (target.Type == "levelup") { if (!UserProfile.InfoCard.CanLevelUp(TargetCard.BaseId)) { Form.AddFlowCenter(HSErrorTypes.GetDescript(HSErrorTypes.CardExpNotEnough), "Red"); } else if (MessageBoxEx2.Show("确定消耗所有碎片提升等级?") == DialogResult.OK) { UserProfile.InfoCard.CardLevelUp(TargetCard.BaseId); } } else { return; } Form.MenuRefresh(false); }
// Event handler: DispatcherUnhandledException private void DispatcherUnhandledException_Handler(object sender, DispatcherUnhandledExceptionEventArgs evt) { string exceptionText = string.Empty; for (Exception exception = evt.Exception; exception != null; exception = exception.InnerException) { exceptionText += $"Type = {exception.GetType().Name}\r\n"; exceptionText += $"Message = {exception.Message}\r\n"; if (exception is ExternalException externalException) { exceptionText += $"HResult = 0x{externalException.ErrorCode:X8}"; } if (exception is XamlParseException xamlParseException) { exceptionText += $"XAML URI = {xamlParseException.BaseUri}\r\n"; exceptionText += $"XAML line = {xamlParseException.LineNumber}\r\n"; exceptionText += $"XAML pos = {xamlParseException.LinePosition}\r\n"; exceptionText += $"XAML key = {xamlParseException.KeyContext}\r\n"; exceptionText += $"XAML name = {xamlParseException.NameContext}\r\n"; } exceptionText += $"HasInner = {exception.InnerException != null}\r\n"; exceptionText += $"{exception.StackTrace}\r\n\r\n"; } string message; if (SafeClipboardSetText(exceptionText)) { message = JCstring.MessageTextUnhandledExceptionCopySuccess.Unescape(); } else { message = JCstring.MessageTextUnhandledExceptionCopyFailure.Unescape(); } MessageBoxEx2.Show(new MessageBoxEx2Params { CaptionText = JCstring.MessageCaptionFatalError, MessageText = string.Format(CultureInfo.CurrentCulture, message, evt.Exception.GetType().Name), Image = MessageBoxEx2Image.Error, ButtonText = new string[] { JCstring.DialogButtonTextOk } }); Environment.Exit(1); }
private void FarmForm_MouseClick(object sender, MouseEventArgs e) { int newsel = GetSelectedCell(e.X, e.Y); if (newsel != -1) { DbFarmState timeState = UserProfile.Profile.InfoFarm.GetFarmState(newsel); if (timeState.Type == -1) { var pricecount = GameResourceBook.OutWoodBuildFarm( (uint)UserProfile.Profile.InfoFarm.GetFarmAvailCount() * 20); if (MessageBoxEx2.Show(string.Format("是否花{0}木材开启额外农田?", pricecount)) == DialogResult.OK) { if (UserProfile.InfoBag.HasResource(GameResourceType.Lumber, pricecount)) { UserProfile.InfoBag.SubResource(GameResourceType.Lumber, pricecount); UserProfile.Profile.InfoFarm.SetFarmState(newsel, new DbFarmState(0, 0)); } else { AddFlowCenter("资源不足", "Red"); } } } else if (timeState.Type > 0) { if (timeState.Time < TimeTool.DateTimeToUnixTime(DateTime.Now)) { UserProfile.InfoBag.AddItem(timeState.Type, 1); UserProfile.Profile.InfoFarm.SetFarmState(newsel, new DbFarmState(0, 0)); } else { int pricecount = (timeState.Time - TimeTool.DateTimeToUnixTime(DateTime.Now)) / 600 + 1; if (MessageBoxEx2.Show(string.Format("是否花{0}钻石催熟作物?", pricecount)) == DialogResult.OK) { if (UserProfile.InfoBag.PayDiamond(pricecount)) { UserProfile.Profile.InfoFarm.SetFarmState(newsel, new DbFarmState(timeState.Type, 0)); } } } } } }
private void buttonOk_Click(object sender, EventArgs e) { var deck = UserProfile.InfoCard.Decks[selectPage]; if (deck.Count < GameConstants.DeckCardCount) { MessageBoxEx2.Show("卡组内卡片数不足"); return; } foreach (var cardId in deck.CardIds) { var card = CardAssistant.GetCard(cardId); if (card.JobId > 0 && card.JobId != UserProfile.InfoBasic.Job) { MessageBoxEx2.Show("部分卡牌职业不匹配"); return; } } comfirm = true; UserProfile.InfoCard.DeckId = selectPage; Close(); }
private void Devices_CmdDelete_Executed(object sender, ExecutedRoutedEventArgs evt) { int count = Devices.Count(d => IsSelectedDevice(d)); string message = count == 1 ? JCstring.MessageTextDeleteOneDevice : string.Format(CultureInfo.CurrentCulture, JCstring.MessageTextDeleteMultipleDevices, count); int result = MessageBoxEx2.Show(new MessageBoxEx2Params { CaptionText = JCstring.MessageCaptionDelete, MessageText = message, Image = MessageBoxEx2Image.Question, ButtonText = new string[] { JCstring.DialogButtonTextYes, JCstring.DialogButtonTextNo }, Owner = this }); if (result == 0) // Yes button { List <Device> deleteDevices = Devices.Where(d => IsSelectedDevice(d)).ToList(); foreach (Device device in deleteDevices) { List <Device> meshClients = Devices.Where(d => IsMeshClient(d, device.ID)).ToList(); foreach (Device meshClient in meshClients) { ((JuisDevice)meshClient).MeshMaster = string.Empty; } List <Device> dectClients = Devices.Where(d => IsDectClient(d, device.ID)).ToList(); foreach (Device dectClient in dectClients) { ((DectDevice)dectClient).DectBase = string.Empty; } Devices.Remove(device); } } Devices_SetDataGridFocus(); }
private void ItemView_MouseClick(object sender, MouseEventArgs e) { if (tar == -1) { return; } if (e.Button == MouseButtons.Left) { if (leftSelectTar == -1) { if (baseid + tar < UserProfile.InfoBag.BagCount) { if (UserProfile.InfoBag.Items[baseid + tar].Type != 0) { HItemConfig itemConfig = ConfigData.GetHItemConfig(UserProfile.InfoBag.Items[baseid + tar].Type); myCursor.ChangeCursor("Item", string.Format("{0}.jpg", itemConfig.Url), 40, 40); leftSelectTar = tar; tooltip.Hide(this); } } else { int diff = baseid + tar - UserProfile.InfoBag.BagCount + 1; uint pricecount = 0; for (int i = 0; i < diff; i++) { pricecount += (uint)((UserProfile.InfoBag.BagCount + i) / 5 + 10); } if (MessageBoxEx2.Show(string.Format("是否花{0}金币开启额外的{1}格物品格?", pricecount, diff)) == DialogResult.OK) { if (UserProfile.InfoBag.HasResource(GameResourceType.Gold, pricecount)) { UserProfile.InfoBag.SubResource(GameResourceType.Gold, pricecount); UserProfile.InfoBag.ResizeBag(UserProfile.InfoBag.BagCount + diff); nlPageSelector1.TotalPage = Math.Min((UserProfile.InfoBag.BagCount - 1) / CellCountPerPage + 2, 9); AddFlowCenter("背包扩容完成", "LimeGreen"); } } } } else { myCursor.ChangeCursor("default"); if (baseid + tar < UserProfile.InfoBag.BagCount) { if (UserProfile.InfoBag.Items[baseid + tar].Type == 0) { UserProfile.InfoBag.Items[baseid + tar].Type = UserProfile.InfoBag.Items[baseid + leftSelectTar].Type; UserProfile.InfoBag.Items[baseid + leftSelectTar].Type = 0; UserProfile.InfoBag.Items[baseid + tar].Value = UserProfile.InfoBag.Items[baseid + leftSelectTar].Value; UserProfile.InfoBag.Items[baseid + leftSelectTar].Value = 0; } else { int oldid = UserProfile.InfoBag.Items[baseid + tar].Type; UserProfile.InfoBag.Items[baseid + tar].Type = UserProfile.InfoBag.Items[baseid + leftSelectTar].Type; UserProfile.InfoBag.Items[baseid + leftSelectTar].Type = oldid; int oldcount = UserProfile.InfoBag.Items[baseid + tar].Value; UserProfile.InfoBag.Items[baseid + tar].Value = UserProfile.InfoBag.Items[baseid + leftSelectTar].Value; UserProfile.InfoBag.Items[baseid + leftSelectTar].Value = oldcount; } } leftSelectTar = -1; } isDirty = true; Invalidate(new Rectangle(6, 36, 324, 324)); } else if (e.Button == MouseButtons.Right) { rightSelectTar = tar; tooltip.Hide(this); if (rightSelectTar == -1) { return; } popMenuItem.Clear(); HItemConfig itemConfig = ConfigData.GetHItemConfig(UserProfile.InfoBag.Items[baseid + rightSelectTar].Type); #region 构建菜单 if (itemConfig.IsUsable) { popMenuItem.AddItem("use", "使用"); } if (itemConfig.Id == 0 || (itemConfig.Id != 0 && itemConfig.IsThrowable)) { popMenuItem.AddItem("throw", "丢弃", "Red"); popMenuItem.AddItem("sold", "卖出", "Red"); } popMenuItem.AddItem("exit", "退出"); #endregion popMenuItem.AutoResize(); popMenuItem.ItemIndex = baseid + rightSelectTar; popContainer.Show(this, e.Location.X, e.Location.Y); } }
// Event handler: Worker_DoWork private void Worker_DoWork_Handler(object sender, DoWorkEventArgs evt) { BackgroundWorker worker = (BackgroundWorker)sender; int progress = 0; foreach (Device device in queryDevices) { if (device is DectDevice dectDevice) { JuisDevice dectBase = null; Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { dectBase = App.GetMainWindow().Devices.FindByID(dectDevice.DectBase) as JuisDevice; })); string message = null; if (string.IsNullOrWhiteSpace(dectDevice.DectBase)) { message = string.Format(CultureInfo.CurrentCulture, JCstring.MessageTextDectBaseNotSet, dectDevice.DeviceName); } else if (dectBase == null) { message = string.Format(CultureInfo.CurrentCulture, JCstring.MessageTextDectBaseNotFound, dectDevice.DeviceName); } if (message != null) { int result = -1; Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { result = MessageBoxEx2.Show(new MessageBoxEx2Params { CaptionText = JCstring.MessageCaptionError, MessageText = message.Unescape(), Image = MessageBoxEx2Image.Error, ButtonText = new string[] { JCstring.DialogButtonTextSkip, JCstring.DialogButtonTextCancel }, Owner = this }); })); if (result == 0) // Skip button { continue; } else // Cancel button, close box { break; } } string queryUpdateResponse = dectDevice.QueryFirmwareUpdate(dectBase); Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { dectDevice.SetFirmwareUpdate(queryUpdateResponse); })); } if (device is JuisDevice juisDevice) { JuisDevice meshMaster = null; Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { meshMaster = App.GetMainWindow().Devices.FindByID(juisDevice.MeshMaster) as JuisDevice; })); try { JUIS.UpdateInfo queryUpdateResponse = juisDevice.QueryFirmwareUpdate(meshMaster); Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { juisDevice.SetFirmwareUpdate(queryUpdateResponse); })); } catch { Dispatcher.Invoke(DispatcherPriority.Normal, new Action(() => { juisDevice.SetFirmwareUpdate(null); })); } } worker.ReportProgress(++progress); if (worker.CancellationPending) { break; } } }