/** 艦隊が出撃中で大破した場合に警告を行います */ private void postFatal(List<ShipDto> badlyDamaged) { if (badlyDamaged.size() > 0) { if (AppConfig.get().isBalloonBybadlyDamage()) { StringBuilder sb = new StringBuilder(); sb.append(AppConstants.MESSAGE_STOP_SORTIE); sb.append("\n"); for (ShipDto shipDto : badlyDamaged) { sb.append(shipDto.getName()); sb.append("(" + shipDto.getLv() + ")"); sb.append(" : "); List<ItemInfoDto> items = shipDto.getItem(); List<String> names = new ArrayList<String>(); for (ItemInfoDto itemDto : items) { if (itemDto != null) { names.add(itemDto.getName()); } } sb.append(StringUtils.join(names, ",")); sb.append("\n"); } ToolTip tip = new ToolTip(this.main.getShell(), SWT.BALLOON | SWT.ICON_ERROR); tip.setText("大破警告"); tip.setMessage(sb.toString()); this.main.getTrayItem().setToolTip(tip); tip.setVisible(true); } // 大破時にサウンドを再生する Sound.randomBadlySoundPlay(); } }
@Override public void run() { if (this.main.getShell().isDisposed()) { return; } // 現在時刻 boolean visibleHome = false; // 遠征を更新する this.updateDeck(); // 入渠を更新する this.updateNdock(); // その他の時間を更新 this.updateOtherTimer(); // 遠征通知 if (this.noticeMission.size() > 0) { Sound.randomExpeditionSoundPlay(); visibleHome |= AppConfig.get().isVisibleOnReturnMission(); // Push通知 遠征 if (AppConfig.get().getPushMission()) { PushNotify.add( StringUtils.join(this.noticeMission, "\r\n"), "遠征", AppConfig.get().getPushPriorityMission()); } } // 入渠通知 if (this.noticeNdock.size() > 0) { Sound.randomDockSoundPlay(); visibleHome |= AppConfig.get().isVisibleOnReturnBathwater(); // Push通知 入渠 if (AppConfig.get().getPushNdock()) { PushNotify.add( StringUtils.join(this.noticeNdock, "\r\n"), "入渠", AppConfig.get().getPushPriorityNdock()); } } // 疲労回復通知 if (this.noticeCond.size() > 0) { Sound.randomCondSoundPlay(); // Push通知 疲労回復 if (AppConfig.get().isPushCond()) { PushNotify.add( StringUtils.join(this.noticeCond, "\r\n"), "疲労回復", AppConfig.get().getPushPriorityCond()); } } // 泊地修理通知 if (this.noticeAkashi.size() > 0) { Sound.randomAkashiSoundPlay(); // Push通知 泊地修理 if (AppConfig.get().isPushAkashi()) { PushNotify.add( StringUtils.join(this.noticeAkashi, "\r\n"), "泊地修理", AppConfig.get().getPushPriorityAkashi()); } } if (visibleHome) { this.main.getTabFolder().setSelection(0); } if (AppConfig.get().isUseBalloon()) { // バルーンツールチップを表示する try { // 遠征・入渠のお知らせ List<String> title = new ArrayList<String>(); List<String> notice = new ArrayList<String>(); this.addNotice(notice, title, this.noticeMission, "遠征"); this.addNotice(notice, title, this.noticeNdock, "入渠"); this.addNotice(notice, title, this.noticeCond, "疲労回復"); this.addNotice(notice, title, this.noticeAkashi, "泊地修理"); if (notice.size() > 0) { ToolTip tip = new ToolTip(this.main.getShell(), SWT.BALLOON | SWT.ICON_INFORMATION); tip.setText(StringUtils.join(title, "・")); tip.setMessage(StringUtils.join(notice, "\r\n")); this.main.getTrayItem().setToolTip(tip); tip.setVisible(true); } } catch (Exception e) { LOG.get().warn("お知らせの表示に失敗しました", e); } } // エラー表示を更新(入渠遠征とは関係ないけど) this.updateErrorLabel(); }