@Override
    public boolean canProvideEquipment(EquipmentType equipmentType) {
        BuildableType buildable = getCurrentlyBuilding();
        for (AbstractGoods goods : equipmentType.getGoodsRequired()) {
            int available = getGoodsCount(goods.getType());

            int breedingNumber = goods.getType().getBreedingNumber();
            if (breedingNumber != GoodsType.INFINITY) {
                available -= breedingNumber;
            }

            if (buildable != null) {
                for (AbstractGoods ag : buildable.getGoodsRequired()) {
                    if (ag.getType() == goods.getType()) {
                        available -= ag.getAmount();
                        break;
                    }
                }
            }

            if (available < goods.getAmount()) return false;
        }
        return true;
    }