public Behaviour jobFor(Actor actor) {
    if (! structure.intact()) return null ;
    if (numPatients() == 0 && ! personnel.onShift(actor)) return null ;
    final Choice choice = new Choice(actor) ;
    //
    //  Manufacture Stim Kits for later use-
    final Manufacture mS = stocks.nextManufacture(actor, MEDICINE_TO_STIM_KITS) ;
    if (mS != null) {
      mS.checkBonus = ((structure.upgradeLevel(EMERGENCY_AID) - 1) * 5) / 2 ;
      //mS.timeMult = 5 ;
      choice.add(mS) ;
    }
    //
    //  If anyone is waiting for treatment, tend to them- including outside the
    //  building.
    final Batch <Mobile> around = new Batch <Mobile> () ;
    world.presences.sampleFromKey(this, world, 5, around, Mobile.class) ;
    for (Mobile m : this.inside()) around.include(m) ;
    for (Mobile m : around) if (m instanceof Actor) {
      final Treatment t = new Treatment(actor, (Actor) m, this) ;
      t.priorityMod = Plan.ROUTINE ;
      choice.add(t) ;
    }
    final Behaviour picked = (numPatients() > 0) ?
      choice.pickMostUrgent() :
      choice.weightedPick() ;
    if (picked != null) return picked ;
    //
    //  Otherwise, just tend the desk...
    return new Supervision(actor, this) ;
  }