block load
{
  es_xmath mb_charload + 2
}
block morpheus
{
  es_xcopy mb_morpheusspeed mb_currentspeed
  es_xmath mb_morpheusspeed float
  if (server_var(mb_currentability) == 1) do
  {
    es_xmath mb_morpheusspeed + .2
    es_xdoblock mb_matrix/characters/morpheus/morpheus_execute
  }
  else do
  {
    if (server_var(mb_currentability) == 2) do
    {
      es_xmath mb_morpheusspeed + .3
      es_xdoblock mb_matrix/characters/morpheus/morpheus_execute
    }
    else do
    {
      if (server_var(mb_currentability) == 3) do
      {
        es_xmath mb_morpheusspeed + .35
        es_xdoblock mb_matrix/characters/morpheus/morpheus_execute
      }
      else do
      {
        if (server_var(mb_currentability) == 4) do
        {
          es_xmath mb_morpheusspeed + .4
          es_xdoblock mb_matrix/characters/morpheus/morpheus_execute
        }
        else do
        {
          if (server_var(mb_currentability) == 5) do
          {
            es_xmath mb_morpheusspeed + .45
            es_xdoblock mb_matrix/characters/morpheus/morpheus_execute
          }
        }
      }
    }
  }
}
block morpheus_execute
{
  if (server_var(mb_dead) == 0) do
  {
    if (server_var(mb_focus) > 2) do
    {
      es_getplayerlocation mb_nx mb_ny mb_nz server_var(mb_userid)
      es_xmath mb_nz + 7
      es est_effect 10 #a 0 "sprites/lgtning.vmt" server_var(mb_nx) server_var(mb_ny) server_var(mb_nz) 0 250 2 2 2 1 0 0 255 255 0
      es_delayed .1 est_effect 10 #a 0 "sprites/lgtning.vmt" server_var(mb_nx) server_var(mb_ny) server_var(mb_nz) 0 250 2 2 2 1 0 0 255 255 0
      es est_speed server_var(mb_userid) server_var(mb_currentspeed)
      es est_speed server_var(mb_userid) server_var(mb_morpheusspeed)
      es_xmath mb_focus - 3
      es_formatv mb_formatmsg "#lightgreen[Ability Level %1] #defaultYou shatter the rules of The Matrix with #greenBurst of Speed!" mb_currentability
      es_tell server_var(mb_userid) #multi server_var(mb_formatmsg)
      es_delayed 10 est_speed server_var(mb_userid) server_var(mb_currentspeed)
      if (server_var(mb_count) >= server_var(mb_ability_exp_players)) do
      {
        if (server_var(mb_currentability) == 1) do
        {
          es_xmath mb_count * .5
          es est_trimdecimal mb_trimdec server_var(mb_count) 2
        }
        else do
        {
          if (server_var(mb_currentability) == 2) do
          {
            es_xmath mb_count * .4
            es est_trimdecimal mb_trimdec server_var(mb_count) 2
          }
          else do
          {
            if (server_var(mb_currentability) == 3) do
            {
              es_xmath mb_count * .3
              es est_trimdecimal mb_trimdec server_var(mb_count) 2
            }
            else do
            {
              if (server_var(mb_currentability) == 4) do
              {
                es_xmath mb_count * .2
                es est_trimdecimal mb_trimdec server_var(mb_count) 2
              }
              else do
              {
                if (server_var(mb_currentability) == 5) do
                {
                  es_xmath mb_count * .1
                  es est_trimdecimal mb_trimdec server_var(mb_count) 2
                }
              }
            }
          }
        }
      }
    }
    else do
    {
      es_tell server_var(mb_userid) #multi #lightgreen[Failure] #defaultYou need 3 focus points to perform #greenBurst of Speed.
    }
  }
  else do
  {
    es_tell server_var(mb_userid) #multi #lightgreen[Failure] #defaultYou cannot use abilities while dead.
  }
}

