Package com.jcloisterzone.board

Examples of com.jcloisterzone.board.Position


    private TakePrisonerAction prepareCapture(Position p, int range) {
        //TODO custom rule - opponent only
        TakePrisonerAction captureAction = new TakePrisonerAction();
        for (Meeple pf : game.getDeployedMeeples()) {
            if (!(pf instanceof Follower)) continue;
            Position pos = pf.getPosition();
            if (pos.x != p.x && pos.y != p.y) continue; //check if is in same row or column
            if (pos.squareDistance(p) > range) continue;
            captureAction.add(new MeeplePointer(pf));
        }
        return captureAction;
    }
View Full Code Here


        }
    }

    @Override
    public void enter() {
        Position pos = getTile().getPosition();

        //TODO separate event here ??? and move this code to abbey and mayor game
        if (barnCap != null) {
            Map<City, CityScoreContext> cityCache = new HashMap<>();
            for (Feature feature : getTile().getFeatures()) {
View Full Code Here

        return duration == null ? 10 : Math.max(duration, 1);
    }

    public void scored(Feature scoreable, Player player, String points, Class<? extends Meeple> meepleType, boolean finalScoring) {
        Tile tile = scoreable.getTile();
        Position pos = tile.getPosition();
        ImmutablePoint offset = client.getResourceManager().getMeeplePlacement(tile, meepleType, scoreable.getLocation());
        animationService.registerAnimation(new ScoreAnimation(
            pos,
            points,
            offset,
View Full Code Here

//    g2.setStroke(new BasicStroke(getSquareSize() * 0.015f));
        for (Entry<Tile, Location> entry : bridges.entrySet()) {
            //devel code only - use image instead
            Tile tile = entry.getKey();
            Location loc = entry.getValue();
            Position pos = tile.getPosition();
            Area a = getClient().getResourceManager().getBridgeArea(tile, getSquareSize(), loc);
            a.transform(AffineTransform.getTranslateInstance(getOffsetX(pos), getOffsetY(pos)));
            g2.setColor(Color.BLACK);
            g2.setComposite(BRIDGE_FILL_COMPOSITE);
            g2.fill(a);
View Full Code Here

    @Override
    public void enter() {
        int distance = flierCap.getFlierDistance();
        Tile origin = game.getCurrentTile();
        Location direction = origin.getFlier().rotateCW(origin.getRotation());
        Position pos = game.getCurrentTile().getPosition();
        for (int i = 0; i < distance; i++) {
            pos = pos.add(direction);
        }
        Tile target = getBoard().get(pos);

        Class<? extends Meeple> meepleType = flierCap.getMeepleType();
        Follower follower = (Follower) getActivePlayer().getMeepleFromSupply(meepleType);
View Full Code Here

        if (!player.hasSpecialMeeple(Pig.class)) return;

        Tile tile = getTile();
        if (!game.isDeployAllowed(tile, Pig.class)) return;

        Position pos = tile.getPosition();
        MeepleAction pigAction = null;
        for (Location loc : tile.getPlayerFeatures(player, Farm.class)) {
            if (pigAction == null) {
                pigAction = new MeepleAction(Pig.class);
                actions.add(pigAction);
View Full Code Here

    }

    private List<Feature> getReachableFeatures() {
        List<Feature> result = new ArrayList<>();
        Location direction = getTile().getFlier().rotateCW(getTile().getRotation());
        Position pos = getTile().getPosition();
        for (int i = 0; i < 3; i++) {
            pos = pos.add(direction);
            Tile target = getBoard().get(pos);
            if (target != null) {
                for (Feature f : target.getFeatures()) {
                    if (f instanceof Completable) {
                        if (f.walk(new IsCompleted())) continue;
View Full Code Here

        Set<Location> roads = tile.getPlayerUncompletedFeatures(player, Road.class);
        Set<Location> cities = tile.getPlayerUncompletedFeatures(player, City.class);
        if (roads.isEmpty() && cities.isEmpty()) return;

        Position pos = tile.getPosition();
        MeepleAction builderAction = new MeepleAction(Builder.class);

        for (Location loc : Iterables.concat(roads, cities)) {
            builderAction.add(new FeaturePointer(pos, loc));
        }
View Full Code Here

                        int j = 0;
                        for (Location side : Location.sides()) {
                            if (side.intersect(f.getLocation()) != null) {
                                if (j == i) {
                                    //Abbey at side;
                                    Position target = f.getTile().getPosition().add(side);
                                    Tile abbeyTile = getBoard().get(target);
                                    assert abbeyTile.isAbbeyTile();
                                    if (!abbeyTile.getCloister().walk(new IsOccupiedOrCompleted())) {
                                        wagonMoves.add(new FeaturePointer(target, Location.CLOISTER));
                                    }
View Full Code Here

        int sqSize = gridPanel.getSquareSize();
        int clickX = e.getX() - gridPanel.getOffsetX();
        int clickY = e.getY() - gridPanel.getOffsetY();
        int x = clickX / sqSize + ((clickX < 0) ? -1 : 0);
        int y = clickY / sqSize + ((clickY < 0) ? -1 : 0);
        return new Position(x, y);
    }
View Full Code Here

TOP

Related Classes of com.jcloisterzone.board.Position

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.