block load
{
  es_xmath mb_charload + 7
}
block agent
{
  es_xdoblock mb_matrix/characters/agent/agent_execute
}
block agent_execute
{
  if (server_var(mb_dead) == 0) do
  {
    es popup send agentmenu server_var(mb_userid)
  }
  else do
  {
    es_tell server_var(mb_userid) #multi #lightgreen[Failure] #defaultYou cannot use abilities while dead.
  }
}
block agentmenu
{
  es_getplayersteamid mb_steamid server_var(_popup_userid)
  es_keygetvalue mb_currentclass Matrix server_var(mb_steamid) currentclass
  es_keygetvalue mb_focus Matrix server_var(mb_steamid) focus
  if (server_var(_popup_choice) == 1) do
  {
    if (server_var(mb_currentclass) == agent) do
    {
      es_getplayerlocation mb_sx mb_sy mb_sz server_var(_popup_userid)
      es_keysetvalue Matrix server_var(mb_steamid) sx server_var(mb_sx)
      es_keysetvalue Matrix server_var(mb_steamid) sy server_var(mb_sy)
      es_keysetvalue Matrix server_var(mb_steamid) sz server_var(mb_sz)
      es_tell server_var(_popup_userid) #multi #lightgreen[Agent] #defaultYou have saved your current location and can teleport back here.
    }
    else do
    {
      es_tell server_var(_popup_userid) #multi #lightgreenYou cannot teleport unless you are an Agent.  #greenCheater!
    }
  }
  if (server_var(_popup_choice) == 2) do
  {
    if (server_var(mb_focus) > 0) do
    {
      if (server_var(mb_currentclass) == agent) do
      {
        es_getplayerlocation mb_sx2 mb_sy2 mb_sz2 server_var(_popup_userid)
        es_keygetvalue mb_sx Matrix server_var(mb_steamid) sx
        es_keygetvalue mb_sy Matrix server_var(mb_steamid) sy
        es_keygetvalue mb_sz Matrix server_var(mb_steamid) sz
        es_xmath mb_sz2 + 50
        es est_teleport server_var(_popup_userid) server_var(mb_sx) server_var(mb_sy) server_var(mb_sz)
        es est_effect 11 #a 0 sprites/greenglow1.vmt server_var(mb_sx2) server_var(mb_sy2) server_var(mb_sz2) 3 1 220
        es_xmath mb_focus - 1
        es_keysetvalue Matrix server_var(mb_steamid) focus server_var(mb_focus)
        es_xdoblock mb_matrix/dohudhint
      }
      else do
      {
        es_tell server_var(_popup_userid) #multi #lightgreenYou cannot teleport unless you are an Agent.  #greenCheater!
      }
    }
    else do
    {
      es_tell server_var(_popup_userid) #multi #lightgreen[Agent] #defaultYou need 1 focus points to perform #greenAgent Teleportation.
    }
  }
}
