<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def draw_commands(self, surf):
 """Draw the list of available commands."""

    past_abilities = {act.ability for act in self._past_actions if act.ability}
    for y, cmd in enumerate(sorted(self._abilities(
        lambda c: c.name != "Smart"), key=lambda c: c.name), start=2):
      if self._queued_action and cmd == self._queued_action:
        color = colors.green
      elif self._queued_hotkey and cmd.hotkey.startswith(self._queued_hotkey):
        color = colors.green * 0.75
      elif cmd.ability_id in past_abilities:
        color = colors.red
      else:
        color = colors.yellow
      hotkey = cmd.hotkey[0:3]  # truncate "escape" -> "esc"
      surf.write_screen(self._font_large, color, (0.2, y), hotkey)
      surf.write_screen(self._font_large, color, (3, y), cmd.name)