public boolean actionDeliverOres(Actor actor, Venue venue) {
    if (verbose) I.sayAbout(actor, "Returning to "+venue) ;
    
    for (Service type : Smelter.MINED_TYPES) {
      if (venue instanceof Smelter) {
        final Service output = ((Smelter) venue).output ;
        if (type != output) continue ;
      }
      actor.gear.transfer(type, venue) ;
      for (Item match : actor.gear.matches(Item.asMatch(SAMPLES, type))) {
        actor.gear.removeItem(match) ;
        if (venue.stocks.amountOf(match) < MAX_SAMPLE_STORE) {
          venue.stocks.addItem(match) ;
        }
      }
    }
    if (oresCarried(actor) == 0) stage = STAGE_DONE ;
    return true ;
  }