private void updateOfferItems() {
        goldOfferPanel.setAvailableGold(player.getGold());

        if (unit.isCarrier()) {
            List<Goods> goodsAvail = new ArrayList<Goods>();
            if (unit.getOwner() == player) {
                goodsAvail.addAll(unit.getGoodsList());
            } else {
                goodsAvail.addAll(settlement.getCompactGoods());
            }
            for (Goods g : goodsAvail) {
                if (g.getAmount() > GoodsContainer.CARGO_SIZE) {
                    g.setAmount(GoodsContainer.CARGO_SIZE);
                }
            }

            for (Goods goods : agreement.getGoodsGivenBy(player)) {
                // Remove the ones already on the table
                for (int i = 0; i < goodsAvail.size(); i++) {
                    Goods g = goodsAvail.get(i);
                    if (g.getType() == goods.getType()) {
                        if (g.getAmount() <= goods.getAmount()) {
                            goodsAvail.remove(i);
                        } else {
                            g.setAmount(g.getAmount() - goods.getAmount());
                        }
                        break;
                    }
                }
            }
            goodsOfferPanel.updateGoodsBox(goodsAvail);

        } else {
            colonyOfferPanel.updateColonyBox();
        }
    }