}
popup.add( new TargetMenuItem(new HexTarget(coords, client.game.board, Targetable.TYPE_HEX_FASCAM))); popup.add( new TargetMenuItem(new HexTarget(coords, client.game.board, Targetable.TYPE_HEX_INFERNO_IV))); popup.add( new TargetMenuItem(new HexTarget(coords, client.game.board, Targetable.TYPE_HEX_VIBRABOMB_IV)));                }
    protected void fillPopup(Coords coords) {        popup.removeAll();        // add select options        if (canSelectEntities()) {            for (Enumeration i = client.game.getEntities(coords); i.hasMoreElements();) {                final Entity entity = (Entity) i.nextElement();                if (client.game.getTurn().isValidEntity(entity, client.game)) {                    popup.add(new SelectMenuItem(entity));                }            }        }        if (popup.getItemCount() > 0) {            popup.addSeparator();        }        // add view options        for (Enumeration i = client.game.getEntities(coords); i.hasMoreElements();) {            final Entity entity = (Entity) i.nextElement();            popup.add(new ViewMenuItem(entity));        }        // add target options        if (canTargetEntities()) {            if (popup.getItemCount() > 0) {                popup.addSeparator();            }            for (Enumeration i = client.game.getEntities(coords); i.hasMoreElements();) {                final Entity entity = (Entity) i.nextElement();                popup.add(new TargetMenuItem(entity));            }            // Can target weapons at the hex if it contains woods or building.            // Can target physical attacks at the hex if it contains building.            if (curPanel instanceof FiringDisplay                || curPanel instanceof PhysicalDisplay                || curPanel instanceof TargetingPhaseDisplay) {                Hex h = client.game.board.getHex(coords);                if (h != null && h.contains(Terrain.WOODS) && curPanel instanceof FiringDisplay) {                    popup.add(new TargetMenuItem(new HexTarget(coords, client.game.board, Targetable.TYPE_HEX_CLEAR)));                    if (client.game.getOptions().booleanOption("fire")) {                        popup.add(                            new TargetMenuItem(new HexTarget(coords, client.game.board, Targetable.TYPE_HEX_IGNITE)));                    }                } else if (h != null && h.contains(Terrain.BUILDING)) {                    popup.add(new TargetMenuItem(new BuildingTarget(coords, client.game.board, false)));                    if (client.game.getOptions().booleanOption("fire")) {                        popup.add(new TargetMenuItem(new BuildingTarget(coords, client.game.board, true)));                    }                }                if (h != null && client.game.containsMinefield(coords) && curPanel instanceof FiringDisplay) {                    popup.add(new TargetMenuItem(new MinefieldTarget(coords, client.game.board)));                }                if (h != null && curPanel instanceof FiringDisplay) {                    popup.add(                        new TargetMenuItem(                            new HexTarget(coords, client.game.board, Targetable.TYPE_MINEFIELD_DELIVER)));                }                if (h != null && curPanel instanceof FiringDisplay) {                    popup.add(                        new TargetMenuItem(new HexTarget(coords, client.game.board, Targetable.TYPE_HEX_ARTILLERY)));                }                if (h != null && curPanel instanceof TargetingPhaseDisplay) {                    popup.add(                        new TargetMenuItem(new HexTarget(coords, client.game.board, Targetable.TYPE_HEX_ARTILLERY)));                }            }        }    }