📄 targetingphasedisplay.java
字号:
* Jump to our next target. If there isn't one, well, don't do anything. */ private void jumpToNextTarget() { Entity targ = getNextTarget(); if (null == targ) return; // HACK : don't show the choice dialog. clientgui.bv.centerOnHex(targ.getPosition()); clientgui.getBoardView().select(targ.getPosition()); // HACK : show the choice dialog again. target(targ); } /** * Returns the current entity. */ private Entity ce() { return client.game.getEntity(cen); } // // BoardListener // public void hexMoused(BoardViewEvent b) { // Are we ignoring events? if (isIgnoringEvents()) { return; } // ignore buttons other than 1 if (!client.isMyTurn() || (b.getModifiers() & MouseEvent.BUTTON1_MASK) == 0) { return; } // control pressed means a line of sight check. // added ALT_MASK by kenn if ((b.getModifiers() & InputEvent.CTRL_MASK) != 0 || (b.getModifiers() & InputEvent.ALT_MASK) != 0) { return; } // check for shifty goodness if (shiftheld != ((b.getModifiers() & MouseEvent.SHIFT_MASK) != 0)) { shiftheld = (b.getModifiers() & MouseEvent.SHIFT_MASK) != 0; } if (b.getType() == BoardViewEvent.BOARD_HEX_DRAGGED) { if (shiftheld || twisting) { updateFlipArms(false); torsoTwist(b.getCoords()); } clientgui.getBoardView().cursor(b.getCoords()); } else if (b.getType() == BoardViewEvent.BOARD_HEX_CLICKED) { twisting = false; clientgui.getBoardView().select(b.getCoords()); } } public void hexSelected(BoardViewEvent b) { // Are we ignoring events? if (isIgnoringEvents()) { return; } if (client.isMyTurn() && b.getCoords() != null && ce() != null && !b.getCoords().equals(ce().getPosition())) { boolean friendlyFire = client.game.getOptions().booleanOption("friendly_fire"); //$NON-NLS-1$ if (shiftheld) { updateFlipArms(false); torsoTwist(b.getCoords()); } else if (phase == IGame.PHASE_TARGETING) { target(new HexTarget(b.getCoords(), ce().getGame().getBoard(), Targetable.TYPE_HEX_ARTILLERY)); } else if (friendlyFire && client.game.getFirstEntity(b.getCoords()) != null) { target(client.game.getFirstEntity(b.getCoords())); } else if (client.game.getFirstEnemyEntity(b.getCoords(), ce()) != null) { target(client.game.getFirstEnemyEntity(b.getCoords(), ce())); } } } // // GameListener // public void gameTurnChange(GameTurnChangeEvent e) { // Are we ignoring events? if (isIgnoringEvents()) { return; } if (client.game.getPhase() == phase) { endMyTurn(); if (client.isMyTurn()) { beginMyTurn(); setStatusBarText(Messages.getString("TargetingPhaseDisplay.its_your_turn")); //$NON-NLS-1$ } else { setStatusBarText(Messages.getString("TargetingPhaseDisplay.its_others_turn", new Object[]{e.getPlayer().getName()})); //$NON-NLS-1$ } } } public void gamePhaseChange(GamePhaseChangeEvent e) { // Are we ignoring events? if (isIgnoringEvents()) { return; } if (client.isMyTurn() && client.game.getPhase() != phase) { endMyTurn(); } // if we're ending the firing phase, unregister stuff. if (client.game.getPhase() == phase) { setStatusBarText(Messages.getString("TargetingPhaseDisplay.waitingForFiringPhase")); //$NON-NLS-1$ } } // // ActionListener // public void actionPerformed(ActionEvent ev) { // Are we ignoring events? if (isIgnoringEvents()) { return; } if (statusBarActionPerformed(ev, client)) return; if (!client.isMyTurn()) { return; } if (ev.getSource().equals(butDone)) { ready(); } else if (ev.getActionCommand().equalsIgnoreCase("viewGameOptions")) { //$NON-NLS-1$ // Make sure the game options dialog is not editable. if (clientgui.getGameOptionsDialog().isEditable()) { clientgui.getGameOptionsDialog().setEditable(false); } // Display the game options dialog. clientgui.getGameOptionsDialog().update(client.game.getOptions()); clientgui.getGameOptionsDialog().setVisible(true); } else if (ev.getActionCommand().equals(FIRE_FIRE)) { fire(); } else if (ev.getActionCommand().equals(FIRE_SKIP)) { nextWeapon(); } else if (ev.getActionCommand().equals(FIRE_TWIST)) { twisting = true; } else if (ev.getActionCommand().equals(FIRE_NEXT)) { selectEntity(client.getNextEntityNum(cen)); } else if (ev.getActionCommand().equals(FIRE_NEXT_TARG)) { jumpToNextTarget(); } else if (ev.getActionCommand().equals(FIRE_FLIP_ARMS)) { updateFlipArms(!ce().getArmsFlipped()); } else if (ev.getActionCommand().equals(FIRE_MODE)) { changeMode(); } else if (ev.getActionCommand().equals(FIRE_CANCEL)) { clearAttacks(); clientgui.getBoardView().select(null); clientgui.getBoardView().cursor(null); refreshAll(); } else if (ev.getActionCommand().equals(FIRE_SEARCHLIGHT)) { doSearchlight(); } } private void updateFlipArms(boolean armsFlipped) { if (armsFlipped == ce().getArmsFlipped()) { return; } twisting = false; torsoTwist(null); clearAttacks(); ce().setArmsFlipped(armsFlipped); attacks.addElement(new FlipArmsAction(cen, armsFlipped)); updateTarget(); refreshAll(); } private void updateSearchlight() { setSearchlightEnabled(ce() != null && target != null && ce().isUsingSpotlight() && ce().getCrew().isActive() && SearchlightAttackAction.isPossible(client.game, cen, target, null)); } private void setFireEnabled(boolean enabled) { butFire.setEnabled(enabled); clientgui.getMenuBar().setFireFireEnabled(enabled); } private void setTwistEnabled(boolean enabled) { butTwist.setEnabled(enabled); clientgui.getMenuBar().setFireTwistEnabled(enabled); } private void setSkipEnabled(boolean enabled) { butSkip.setEnabled(enabled); clientgui.getMenuBar().setFireSkipEnabled(enabled); } private void setFlipArmsEnabled(boolean enabled) { butFlipArms.setEnabled(enabled); clientgui.getMenuBar().setFireFlipArmsEnabled(enabled); } private void setNextEnabled(boolean enabled) { butNext.setEnabled(enabled); clientgui.getMenuBar().setFireNextEnabled(enabled); } private void setSearchlightEnabled(boolean enabled) { butSearchlight.setEnabled(enabled); clientgui.getMenuBar().setFireSearchlightEnabled(enabled); } private void setFireModeEnabled(boolean enabled) { butFireMode.setEnabled(enabled); clientgui.getMenuBar().setFireModeEnabled(enabled); } private void setNextTargetEnabled(boolean enabled) { butNextTarg.setEnabled(enabled); clientgui.getMenuBar().setFireNextTargetEnabled(enabled); } // // KeyListener // public void keyPressed(KeyEvent ev) { // Are we ignoring events? if (isIgnoringEvents()) { return; } if (ev.getKeyCode() == KeyEvent.VK_ESCAPE) { clearAttacks(); clientgui.getBoardView().select(null); clientgui.getBoardView().cursor(null); refreshAll(); } if (ev.getKeyCode() == KeyEvent.VK_ENTER && ev.isControlDown()) { if (client.isMyTurn()) { // } } if (ev.getKeyCode() == KeyEvent.VK_SHIFT && !shiftheld) { shiftheld = true; if (client.isMyTurn() && clientgui.getBoardView().getLastCursor() != null) { updateFlipArms(false); torsoTwist(clientgui.getBoardView().getLastCursor()); } } if (ev.getKeyCode() == KeyEvent.VK_LEFT && shiftheld) { updateFlipArms(false); torsoTwist(0); } if (ev.getKeyCode() == KeyEvent.VK_RIGHT && shiftheld) { updateFlipArms(false); torsoTwist(1); }/* if (ev.getKeyCode() == KeyEvent.VK_M) { changeMode(); }*/ } public void keyReleased(KeyEvent ev) { // Are we ignoring events? if (isIgnoringEvents()) { return; } if (ev.getKeyCode() == KeyEvent.VK_SHIFT && shiftheld) { shiftheld = false; } } public void keyTyped(KeyEvent ev) { } // // ItemListener // public void itemStateChanged(ItemEvent ev) { // Are we ignoring events? if (isIgnoringEvents()) { return; } } // board view listener public void finishedMovingUnits(BoardViewEvent b) { // Are we ignoring events? if (isIgnoringEvents()) { return; } if (client.isMyTurn() && ce() != null) { clientgui.setDisplayVisible(true); clientgui.bv.centerOnHex(ce().getPosition()); } } public void unitSelected(BoardViewEvent b) { // Are we ignoring events? if (isIgnoringEvents()) { return; } Entity e = client.game.getEntity(b.getEntityId()); if (client.isMyTurn()) { if (client.game.getTurn().isValidEntity(e, client.game)) { selectEntity(e.getId()); } } else { clientgui.setDisplayVisible(true); clientgui.mechD.displayEntity(e); if (e.isDeployed()) { clientgui.bv.centerOnHex(e.getPosition()); } } } /** * Determine if the listener is currently distracted. * * @return <code>true</code> if the listener is ignoring events. */ public boolean isIgnoringEvents() { return distracted.isIgnoringEvents(); } /** * Specify if the listener should be distracted. * * @param distracted <code>true</code> if the listener should ignore events * <code>false</code> if the listener should pay attention again. * Events that occured while the listener was distracted NOT * going to be processed. */ public void setIgnoringEvents(boolean distracted) { this.distracted.setIgnoringEvents(distracted); } /** * Retrieve the "Done" button of this object. * * @return the <code>javax.swing.JButton</code> that activates this * object's "Done" action. */ public JButton getDoneButton() { return butDone; } /** * Stop just ignoring events and actually stop listening to them. */ public void removeAllListeners() { client.game.removeGameListener(this); clientgui.getBoardView().removeBoardViewListener(this); clientgui.mechD.wPan.weaponList.removeListSelectionListener(this); } public void valueChanged(ListSelectionEvent event) { if (event.getSource().equals(clientgui.mechD.wPan.weaponList)) { // update target data in weapon display updateTarget(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -