📄 firingdisplay.java
字号:
} } // // GameListener // public void gameTurnChange(GameTurnChangeEvent e) { // Are we ignoring events? if ( this.isIgnoringEvents() ) { return; } if(client.game.getPhase() == IGame.PHASE_FIRING) { endMyTurn(); if(client.isMyTurn()) { beginMyTurn(); setStatusBarText(Messages.getString("FiringDisplay.its_your_turn")); //$NON-NLS-1$ } else { setStatusBarText(Messages.getString("FiringDisplay.its_others_turn", new Object[]{e.getPlayer().getName()})); //$NON-NLS-1$ } } } public void gamePhaseChange(GamePhaseChangeEvent e) { // Are we ignoring events? if ( this.isIgnoringEvents() ) { return; } if(client.isMyTurn() && client.game.getPhase() != IGame.PHASE_FIRING) { endMyTurn(); } // if we're ending the firing phase, unregister stuff. if(client.game.getPhase() == IGame.PHASE_FIRING) { setStatusBarText(Messages.getString("FiringDisplay.waitingForFiringPhase")); //$NON-NLS-1$ } } // // ActionListener // public void actionPerformed(ActionEvent ev) { // Are we ignoring events? if ( this.isIgnoringEvents() ) { return; } if ( statusBarActionPerformed(ev, client) ) return; if (!client.isMyTurn()) { return; } if (ev.getSource() == 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_MORE)) { buttonLayout++; buttonLayout %= NUM_BUTTON_LAYOUTS; setupButtonPanel(); } else if (ev.getActionCommand().equals(FIRE_FIND_CLUB)) { findClub(); } else if (ev.getActionCommand().equals(FIRE_SPOT)) { doSpot(); } else if (ev.getActionCommand().equals(FIRE_NEXT_TARG)) { jumpToNextTarget(); } else if (ev.getActionCommand().equals(FIRE_FLIP_ARMS)) { updateFlipArms(!ce().getArmsFlipped()); // Fire Mode - More Fire Mode button handling - Rasia } else if (ev.getActionCommand().equals(FIRE_MODE)) { changeMode(); } else if ((ev.getActionCommand().equalsIgnoreCase("changeSinks")) || (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 setFindClubEnabled(boolean enabled) { butFindClub.setEnabled(enabled); clientgui.getMenuBar().setFireFindClubEnabled(enabled); } private void setNextTargetEnabled(boolean enabled) { butNextTarg.setEnabled(enabled); clientgui.getMenuBar().setFireNextTargetEnabled(enabled); } private void setFlipArmsEnabled(boolean enabled) { butFlipArms.setEnabled(enabled); clientgui.getMenuBar().setFireFlipArmsEnabled(enabled); } private void setSpotEnabled(boolean enabled) { butSpot.setEnabled(enabled); clientgui.getMenuBar().setFireSpotEnabled(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 setNextEnabled(boolean enabled) { butNext.setEnabled(enabled); clientgui.getMenuBar().setFireNextEnabled(enabled); } // // KeyListener // public void keyPressed(KeyEvent ev) { // Are we ignoring events? if ( this.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_BACK_SPACE) { if (client.isMyTurn()) { removeLastFiring(); } } 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 ( this.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 ( this.isIgnoringEvents() ) { return; } if(ev.getItemSelectable() == clientgui.mechD.wPan.weaponList) { // update target data in weapon display updateTarget(); } } // board view listener public void finishedMovingUnits(BoardViewEvent b) { // Are we ignoring events? if ( this.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 ( this.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()); } } } private class AimedShotHandler implements ActionListener, ItemListener { private int aimingAt = Entity.LOC_NONE; private int aimingMode = IAimingModes.AIM_MODE_NONE; private int partialCover = LosEffects.COVER_NONE; private boolean lockedLocation = false; private int lockedLoc = Entity.LOC_NONE; private Targetable lockedTarget = null; private AimedShotDialog asd; public AimedShotHandler() { } public void showDialog() { if (asd != null) { int oldAimingMode = aimingMode; closeDialog(); aimingMode = oldAimingMode; } if (inAimingMode()) { String[] options; boolean[] enabled; if (target instanceof Mech) { if (target instanceof BipedMech) { options = BipedMech.LOCATION_NAMES; enabled = createEnabledMask(options.length); } else { options = QuadMech.LOCATION_NAMES; enabled = createEnabledMask(options.length); } if (aimingMode == IAimingModes.AIM_MODE_IMMOBILE) { aimingAt = Mech.LOC_HEAD; } else if (aimingMode == IAimingModes.AIM_MODE_TARG_COMP) { aimingAt = Mech.LOC_CT; } } else if (target instanceof GunEmplacement) { options = GunEmplacement.HIT_LOCATION_NAMES; enabled = new boolean[] { true, ((GunEmplacement) target).hasTurret() }; aimingAt = GunEmplacement.LOC_BUILDING; } else { return; } if (lockedLocation) { aimingAt = lockedLoc; } asd = new AimedShotDialog(clientgui.frame, Messages.getString("FiringDisplay.AimedShotDialog.title"), //$NON-NLS-1$ Messages.getString("FiringDisplay.AimedShotDialog.message"), //$NON-NLS-1$ options, enabled, aimingAt, lockedLocation, this, this); asd.setVisible(true); updateTarget(); } } private boolean[] createEnabledMask(int length) { boolean[] mask = new boolean[length]; for (int i = 0; i < length; i++) { mask[i] = true; } int side = Compute.targetSideTable(ce(), target);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -