当前位置: 首页>>代码示例>>Java>>正文


Java Tile.getOwner方法代码示例

本文整理汇总了Java中net.sf.freecol.common.model.Tile.getOwner方法的典型用法代码示例。如果您正苦于以下问题:Java Tile.getOwner方法的具体用法?Java Tile.getOwner怎么用?Java Tile.getOwner使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在net.sf.freecol.common.model.Tile的用法示例。


在下文中一共展示了Tile.getOwner方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: askClaimTile

import net.sf.freecol.common.model.Tile; //导入方法依赖的package包/类
/**
 * Claim a tile.
 *
 * @param player The {@code Player} that is claiming.
 * @param tile The {@code Tile} to claim.
 * @param claimant The {@code Unit} or {@code Colony} claiming.
 * @param price The price required.
 * @return True if the claim succeeded.
 */
private boolean askClaimTile(Player player, Tile tile,
                             FreeColGameObject claimant, int price) {
    final Player owner = tile.getOwner();
    if (price < 0) { // not for sale
        return false;
    } else if (price > 0) { // for sale
        ClaimAction act
            = getGUI().getClaimChoice(tile, player, price, owner);
        if (act == null) return false; // Cancelled
        switch (act) {
        case CLAIM_ACCEPT: // accepted price
            break;
        case CLAIM_STEAL:
            price = STEAL_LAND;
            break;
        default:
            logger.warning("Claim dialog fail: " + act);
            return false;
        }
    } // else price == 0 and we can just proceed to claim

    // Ask the server
    return askServer().claimTile(tile, claimant, price)
        && player.owns(tile);
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:35,代码来源:InGameController.java

示例2: clientHandler

import net.sf.freecol.common.model.Tile; //导入方法依赖的package包/类
/**
 * {@inheritDoc}
 */
@Override
public void clientHandler(FreeColClient freeColClient) {
    final Game game = freeColClient.getGame();
    final Player player = getPlayer(game);
    final Player other = getOtherPlayer(game);
    final Tile tile = getTile(game);
    final int n = getSettlementCount();

    if (player == null || player != freeColClient.getMyPlayer()) {
        logger.warning("firstContact with bad player: " + player);
        return;
    }
    if (other == null || other == player || !other.isIndian()) {
        logger.warning("firstContact with bad other player: " + other);
        return;
    }
    if (tile != null && tile.getOwner() != other) {
        logger.warning("firstContact with bad tile: " + tile);
        return;
    }

    igc(freeColClient).firstContactHandler(player, other, tile, n);
    clientGeneric(freeColClient);
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:28,代码来源:FirstContactMessage.java

示例3: csClaimLand

import net.sf.freecol.common.model.Tile; //导入方法依赖的package包/类
/**
 * Claim land.
 *
 * @param tile The {@code Tile} to claim.
 * @param settlement The {@code Settlement} to claim for.
 * @param price The price to pay for the land, which must agree
 *     with the owner valuation, unless negative which denotes stealing.
 * @param cs A {@code ChangeSet} to update.
 */
public void csClaimLand(Tile tile, Settlement settlement, int price,
                        ChangeSet cs) {
    ServerPlayer owner = (ServerPlayer)tile.getOwner();
    Settlement ownerSettlement = tile.getOwningSettlement();
    tile.cacheUnseen();//+til
    tile.changeOwnership(this, settlement);//-vis(?),-til

    // Update the tile and any now-angrier owners, and the player
    // gold if a price was paid.
    cs.add(See.perhaps(), tile);
    if (price > 0) {
        modifyGold(-price);
        owner.modifyGold(price);
        cs.addPartial(See.only(this), this,
            "gold", String.valueOf(this.getGold()));
    } else if (price < 0 && owner.isIndian()) {
        ServerIndianSettlement sis = (ServerIndianSettlement)ownerSettlement;
        if (sis == null) {
            owner.csModifyTension(this, Tension.TENSION_ADD_LAND_TAKEN,
                                  cs);
        } else {
            sis.csModifyAlarm(this, Tension.TENSION_ADD_LAND_TAKEN,
                              true, cs);
        }
    }
    logger.finest(this.getName() + " claimed " + tile
        + " from " + ((owner == null) ? "no-one" : owner.getName())
        + ", price: " + ((price == 0) ? "free" : (price < 0) ? "stolen"
            : price));
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:40,代码来源:ServerPlayer.java

示例4: csNativeBurialGround

import net.sf.freecol.common.model.Tile; //导入方法依赖的package包/类
/**
 * Explores a lost city, finding a native burial ground.
 *
 * @param cs A {@code ChangeSet} to add changes to.
 */
private void csNativeBurialGround(ChangeSet cs) {
    ServerPlayer serverPlayer = (ServerPlayer)getOwner();
    Tile tile = getTile();
    ServerPlayer indianPlayer = (ServerPlayer)tile.getOwner();
    serverPlayer.csContact(indianPlayer, cs);
    indianPlayer.csModifyTension(serverPlayer, 
        Tension.Level.HATEFUL.getLimit(), cs);//+til
    serverPlayer.csChangeStance(Stance.WAR, indianPlayer, true, cs);
    cs.addMessage(serverPlayer,
        new ModelMessage(ModelMessage.MessageType.LOST_CITY_RUMOUR,
                         RumourType.BURIAL_GROUND.getDescriptionKey(),
                         serverPlayer, this)
            .addStringTemplate("%nation%", indianPlayer.getNationLabel()));
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:20,代码来源:ServerUnit.java

示例5: confirmHostileAction

import net.sf.freecol.common.model.Tile; //导入方法依赖的package包/类
/**
 * Check if an attack results in a transition from peace or cease fire to
 * war and, if so, warn the player.
 *
 * @param attacker The potential attacking {@code Unit}.
 * @param target The target {@code Tile}.
 * @return True to attack, false to abort.
 */
public boolean confirmHostileAction(Unit attacker, Tile target) {
    if (attacker.hasAbility(Ability.PIRACY)) {
        // Privateers can attack and remain at peace
        return true;
    }

    Player enemy;
    if (target.hasSettlement()) {
        enemy = target.getSettlement().getOwner();
    } else if (target == attacker.getTile()) {
        // Fortify on tile owned by another nation
        enemy = target.getOwner();
        if (enemy == null) return true;
    } else {
        Unit defender = target.getDefendingUnit(attacker);
        if (defender == null) {
            logger.warning("Attacking, but no defender - will try!");
            return true;
        }
        if (defender.hasAbility(Ability.PIRACY)) {
            // Privateers can be attacked and remain at peace
            return true;
        }
        enemy = defender.getOwner();
    }

    String messageId;
    switch (attacker.getOwner().getStance(enemy)) {
    case WAR:
        logger.finest("Player at war, no confirmation needed");
        return true;
    case CEASE_FIRE:
        messageId = "confirmHostile.ceaseFire";
        break;
    case ALLIANCE:
        messageId = "confirmHostile.alliance";
        break;
    case UNCONTACTED: case PEACE: default:
        messageId = "confirmHostile.peace";
        break;
    }
    return confirm(attacker.getTile(), StringTemplate
        .template(messageId)
        .addStringTemplate("%nation%", enemy.getNationLabel()),
        attacker, "confirmHostile.yes", "cancel");
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:55,代码来源:GUI.java

示例6: displayOptionalTileText

import net.sf.freecol.common.model.Tile; //导入方法依赖的package包/类
/**
 * Displays the Tile text for a Tile.
 * Shows tile names, coordinates and colony values.
 *
 * @param g The Graphics2D object on which the text gets drawn.
 * @param tile The Tile to draw the text on.
 */
void displayOptionalTileText(Graphics2D g, Tile tile) {
    String text = null;
    int op = getClientOptions().getInteger(ClientOptions.DISPLAY_TILE_TEXT);
    switch (op) {
    case ClientOptions.DISPLAY_TILE_TEXT_NAMES:
        text = Messages.getName(tile);
        break;
    case ClientOptions.DISPLAY_TILE_TEXT_OWNERS:
        if (tile.getOwner() != null) {
            text = Messages.message(tile.getOwner().getNationLabel());
        }
        break;
    case ClientOptions.DISPLAY_TILE_TEXT_REGIONS:
        if (tile.getRegion() != null) {
            if (FreeColDebugger.isInDebugMode(FreeColDebugger.DebugMode.MENUS)
                && tile.getRegion().getName() == null) {
                text = tile.getRegion().getSuffix();
            } else {
                text = Messages.message(tile.getRegion().getLabel());
            }
        }
        break;
    case ClientOptions.DISPLAY_TILE_TEXT_EMPTY:
        break;
    default:
        logger.warning("displayTileText option " + op + " out of range");
        break;
    }

    g.setColor(Color.BLACK);
    g.setFont(FontLibrary.createFont(FontLibrary.FontType.NORMAL,
        FontLibrary.FontSize.TINY, lib.getScaleFactor()));
    if (text != null) {
        int b = getBreakingPoint(text);
        if (b == -1) {
            g.drawString(text,
                (tileWidth - g.getFontMetrics().stringWidth(text)) / 2,
                (tileHeight - g.getFontMetrics().getAscent()) / 2);
        } else {
            g.drawString(text.substring(0, b),
                (tileWidth - g.getFontMetrics().stringWidth(text.substring(0, b)))/2,
                halfHeight - (g.getFontMetrics().getAscent()*2)/3);
            g.drawString(text.substring(b+1),
                (tileWidth - g.getFontMetrics().stringWidth(text.substring(b+1)))/2,
                halfHeight + (g.getFontMetrics().getAscent()*2)/3);
        }
    }

    if (FreeColDebugger.debugDisplayCoordinates()) {
        String posString = tile.getX() + ", " + tile.getY();
        if (tile.getHighSeasCount() >= 0) {
            posString += "/" + Integer.toString(tile.getHighSeasCount());
        }
        g.drawString(posString,
            (tileWidth - g.getFontMetrics().stringWidth(posString)) / 2,
            (tileHeight - g.getFontMetrics().getAscent()) / 2);
    }
    String value = DebugUtils.getColonyValue(tile);
    if (value != null) {
        g.drawString(value,
            (tileWidth - g.getFontMetrics().stringWidth(value)) / 2,
            (tileHeight - g.getFontMetrics().getAscent()) / 2);
    }
}
 
开发者ID:FreeCol,项目名称:freecol,代码行数:72,代码来源:TileViewer.java


注:本文中的net.sf.freecol.common.model.Tile.getOwner方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。