* @param loser A <code>Unit</code> to capture.
     * @param cs A <code>ChangeSet</code> to update.
     */
    private void csCaptureUnit(Unit winner, Unit loser, ChangeSet cs) {
        ServerPlayer loserPlayer = (ServerPlayer) loser.getOwner();
        StringTemplate loserNation = loserPlayer.getNationName();
        StringTemplate loserLocation = loser.getLocation()
            .getLocationNameFor(loserPlayer);
        StringTemplate oldName = loser.getLabel();
        String messageId = loser.getType().getId() + ".captured";
        ServerPlayer winnerPlayer = (ServerPlayer) winner.getOwner();
        StringTemplate winnerNation = winnerPlayer.getNationName();
        StringTemplate winnerLocation = winner.getLocation()
            .getLocationNameFor(winnerPlayer);

        // Capture the unit
        UnitType type = loser.getTypeChange((winnerPlayer.isUndead())
                                            ? ChangeType.UNDEAD
                                            : ChangeType.CAPTURE, winnerPlayer);
        loser.setOwner(winnerPlayer);
        if (type != null) loser.setType(type);
        loser.setLocation(winner.getTile());
        loser.setState(Unit.UnitState.ACTIVE);

        // Winner message post-capture when it owns the loser
        cs.addMessage(See.only(winnerPlayer),
                      new ModelMessage(ModelMessage.MessageType.COMBAT_RESULT,
                                       messageId, loser)
                      .setDefaultId("model.unit.unitCaptured")
                      .addStringTemplate("%nation%", loserNation)
                      .addStringTemplate("%unit%", oldName)
                      .addStringTemplate("%enemyNation%", winnerNation)
                      .addStringTemplate("%enemyUnit%", winner.getLabel())
                      .addStringTemplate("%location%", winnerLocation));
        cs.addMessage(See.only(loserPlayer),
                      new ModelMessage(ModelMessage.MessageType.COMBAT_RESULT,
                                       messageId, loser.getTile())
                      .setDefaultId("model.unit.unitCaptured")
                      .addStringTemplate("%nation%", loserNation)
                      .addStringTemplate("%unit%", oldName)
                      .addStringTemplate("%enemyNation%", winnerNation)
                      .addStringTemplate("%enemyUnit%", winner.getLabel())
                      .addStringTemplate("%location%", loserLocation));
    }