public float useLevel(Trait type) {
    final Level TL = levels.get(type) ;
    float level = TL == null ? 0 : (TL.value + TL.bonus) ;
    
    if (type.type == PHYSICAL) {
      return level * actor.health.ageMultiple() ;
    }
    
    if (type.type == SKILL) {
      final Skill skill = (Skill) type ;
      if (skill.parent == null) {
        return level * actor.health.ageMultiple() ;
      }
      else {
        if (! actor.health.conscious()) level /= 2 ;
        level += rootBonus(skill) ;
      }
      if (verbose) I.sayAbout(actor, " level of "+type+" is "+level) ;
      if (verbose) I.sayAbout(actor, " root bonus: "+rootBonus(skill)) ;
      level *= 1 - actor.health.stressPenalty() ;
    }
    return level ;
  }