* @param type The <code>GoodsType</code> to sell.
     * @param amount The amount of goods to sell.
     * @param random A <code>Random</code> number source.
     */
    public void sell(GoodsContainer container, GoodsType type, int amount,
                     Random random) {
        logger.finest(getName() + " sells " + amount + " " + type);
        Market market = getMarket();
        int tax = getTax();
        int incomeBeforeTaxes = market.getSalePrice(type, amount);
        int incomeAfterTaxes = ((100 - tax) * incomeBeforeTaxes) / 100;
        modifyGold(incomeAfterTaxes);
        market.modifySales(type, amount);
        market.modifyIncomeBeforeTaxes(type, incomeBeforeTaxes);
        market.modifyIncomeAfterTaxes(type, incomeAfterTaxes);
        int marketAmount = (int)applyModifier((float)amount,
                                              "model.modifier.tradeBonus",
                                              type, getGame().getTurn());
        market.addGoodsToMarket(type, marketAmount);
        propagateToEuropeanMarkets(type, marketAmount, random);

        if (container != null) container.addGoods(type, -amount);
    }