⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 targetingphasedisplay.java

📁 MegaMek is a networked Java clone of BattleTech, a turn-based sci-fi boardgame for 2+ players. Fight
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
     * 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 + -