Examples of TowerCapability


Examples of com.jcloisterzone.game.capability.TowerCapability

        }

//    gp.profile(" > special");

        AbbeyCapability abbeyCap = game.getCapability(AbbeyCapability.class);
        TowerCapability towerCap = game.getCapability(TowerCapability.class);
        BridgeCapability bridgeCap = game.getCapability(BridgeCapability.class);
        CastleCapability castleCap = game.getCapability(CastleCapability.class);
        KingAndRobberBaronCapability kingRobberCap = game.getCapability(KingAndRobberBaronCapability.class);
        ClothWineGrainCapability cwgCap = game.getCapability(ClothWineGrainCapability.class);
        LittleBuildingsCapability lbCap = game.getCapability(LittleBuildingsCapability.class);

        if (abbeyCap != null) {
            drawMeepleBox(null, "abbey", abbeyCap.hasUnusedAbbey(player) ? 1 : 0, false);
        }

        if (towerCap != null) {
            drawMeepleBox(null, "towerpiece", towerCap.getTowerPieces(player), true);
            getMouseRegions().clear();
        }

        if (bridgeCap != null) {
            drawMeepleBox(null, "bridge", bridgeCap.getPlayerBridges(player), true);
        }
        if (castleCap != null) {
            drawMeepleBox(null, "castle", castleCap.getPlayerCastles(player), true);
        }
        if (lbCap != null) {
            drawMeepleBox(null, "lb-tower", lbCap.getBuildingsCount(player, LittleBuilding.TOWER), true);
            drawMeepleBox(null, "lb-house", lbCap.getBuildingsCount(player, LittleBuilding.HOUSE), true);
            drawMeepleBox(null, "lb-shed", lbCap.getBuildingsCount(player, LittleBuilding.SHED), true);
        }

        if (kingRobberCap != null) {
            if (kingRobberCap.getKing() == player) {
                Rectangle r = drawMeepleBox(null, "king", 1, false, "king");
                if ("king".equals(mouseOverKey)) {
                    g2.setFont(FONT_KING_ROBBER_OVERLAY);
                    g2.setColor(KING_ROBBER_OVERLAY);
                    g2.fillRect(r.x, r.y, r.width, r.height);
                    g2.setColor(Color.WHITE);
                    int size = kingRobberCap.getBiggestCitySize();
                    g2.drawString((size < 10 ? " " : "") + size, r.x+2, r.y+20);
                    g2.setFont(FONT_MEEPLE);
                }
            }
            if (kingRobberCap.getRobberBaron() == player) {
                Rectangle r = drawMeepleBox(null, "robber", 1, false, "robber");
                if ("robber".equals(mouseOverKey)) {
                    g2.setFont(FONT_KING_ROBBER_OVERLAY);
                    g2.setColor(KING_ROBBER_OVERLAY);
                    g2.fillRect(r.x, r.y, r.width, r.height);
                    g2.setColor(Color.WHITE);
                    int size = kingRobberCap.getLongestRoadLength();
                    g2.drawString((size < 10 ? " " : "") + size, r.x+2, r.y+20);
                    g2.setFont(FONT_MEEPLE);
                }
            }
        }
        if (cwgCap != null) {
            drawMeepleBox(null, "cloth", cwgCap.getTradeResources(player, TradeResource.CLOTH), true);
            drawMeepleBox(null, "grain", cwgCap.getTradeResources(player, TradeResource.GRAIN), true);
            drawMeepleBox(null, "wine", cwgCap.getTradeResources(player, TradeResource.WINE), true);
        }
        if (towerCap != null) {
            List<Follower> capturedFigures = towerCap.getPrisoners().get(player);
            Map<Class<? extends Follower>, Integer> groupedByType;
            if (!capturedFigures.isEmpty()) {
                groupedByType = new HashMap<>();
                for (Player opponent : game.getAllPlayers()) {
                    if (opponent == player) continue;
                    boolean isOpponentActive = opponent.equals(game.getActivePlayer()) && opponent.isLocalHuman();
                    boolean clickable = isOpponentActive && !towerCap.isRansomPaidThisTurn();
                    for (Follower f : capturedFigures) {
                        if (f.getPlayer() == opponent) {
                            Integer prevVal = groupedByType.get(f.getClass());
                            groupedByType.put(f.getClass(), prevVal == null ? 1 : prevVal+1);
                        }
View Full Code Here

Examples of com.jcloisterzone.game.capability.TowerCapability

    @SuppressWarnings("unchecked")
    @Override
    public void mouseClicked(MouseEvent e, MouseListeningRegion origin) {
        if (!(origin.getData() instanceof Class)) return;
        Class<? extends Follower> followerClass = (Class<? extends Follower>) origin.getData();
        TowerCapability tg = client.getGame().getCapability(TowerCapability.class);
        if (!tg.isRansomPaidThisTurn()) {
            if (client.getConfig().getConfirm().getRansom_payment()) {
                String options[] = {_("Pay ransom"), _("Cancel") };
                int result = JOptionPane.showOptionDialog(client,
                        _("Do you really want to pay 3 points to release prisoner?"),
                        _("Confirm ransom payment"),
View Full Code Here

Examples of com.jcloisterzone.game.capability.TowerCapability

    public void mouseEntered(MouseEvent e, MouseListeningRegion origin) {
        if (origin.getData() instanceof String) {
            mouseOverKey = (String) origin.getData();
            client.getGridPanel().repaint();
        } else {
            TowerCapability tg = client.getGame().getCapability(TowerCapability.class);
            if (!tg.isRansomPaidThisTurn()) {
                client.getGridPanel().setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
            }
        }
    }
View Full Code Here

Examples of com.jcloisterzone.game.capability.TowerCapability

        private Set<Position> towerDanger = new HashSet<>();

        public LegacyAiScoreAllCallback(Game game) {
            this.game = game;
            TowerCapability towerCap = game.getCapability(TowerCapability.class);
            if (towerCap != null) {
                for (Position towerPos : towerCap.getTowers()) {
                    int dangerDistance = 1 + game.getBoard().get(towerPos).getTower().getHeight();
                    towerDanger.add(towerPos);
                    for (int i = 1; i < dangerDistance; i++) {
                        towerDanger.add(towerPos.add(new Position(i, 0)));
                        towerDanger.add(towerPos.add(new Position(-i, 0)));
View Full Code Here

Examples of com.jcloisterzone.game.capability.TowerCapability

    public void undo(Game game) {
        Tile tile = game.getBoard().get(position);
        assert tile.getTower().getHeight() > 0;
        tile.getTower().setHeight(tile.getTower().getHeight() - 1);

        TowerCapability cap = game.getCapability(TowerCapability.class);
        cap.setLastIncreasedTower(null);
        cap.setTowerPieces(getTriggeringPlayer(), cap.getTowerPieces(getTriggeringPlayer()) + 1);
    }
View Full Code Here

Examples of com.jcloisterzone.game.capability.TowerCapability

    super(meeple.getPlayer(), from, to);
    this.meeple = meeple;
  }
 
  private Map<Player, List<Follower>> getPrisoners(Game game) {
      TowerCapability cap = game.getCapability(TowerCapability.class);
      return cap.getPrisoners();
    }
View Full Code Here

Examples of com.jcloisterzone.game.capability.TowerCapability

        Follower m = (Follower) game.getMeeple(p, loc, meepleType, game.getPlayer(meepleOwner));
        m.undeploy();
        //undeploy returns figure to owner -> we must handle capture / prisoner exchange
        Player me = getActivePlayer();
        if (m.getPlayer() != me) {
            TowerCapability towerCap = game.getCapability(TowerCapability.class);
            List<Follower> prisoners = towerCap.getPrisoners().get(m.getPlayer());
            List<Follower> myCapturedFollowers = new ArrayList<>();
            for (Follower f : prisoners) {
                if (f.getPlayer() == me) {
                    myCapturedFollowers.add(f);
                }
            }

            if (myCapturedFollowers.isEmpty()) {
                towerCap.inprison(m, me);
            } else {
                //opponent has my prisoner - figure exchange
                Follower exchanged = myCapturedFollowers.get(0); //TODO same type?
                boolean removeOk = prisoners.remove(exchanged);
                assert removeOk;
View Full Code Here

Examples of com.jcloisterzone.game.capability.TowerCapability

    }

    @Override
    public final void payRansom(Integer playerIndexToPay, Class<? extends Follower> meepleType) {
        //pay ransom is valid any time
        TowerCapability towerCap = game.getCapability(TowerCapability.class);
        if (towerCap == null) {
            logger.error(Application.ILLEGAL_STATE_MSG, "payRansom");
            return;
        }
        towerCap.payRansom(playerIndexToPay, meepleType);
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.