How to add a cooldown to a move.

Hi Guys. I have a move called Teleport in my game im creating. I would like to know how to add a 30 second cooldown to the move. and if this is as simple as adding some code how i would make a display bar for cooldown or even a GUIText that says how long is left. Any info on this is appreciated thanks.

I would do something like that :

var coolDown : float = 30.0;

private var canTeleport : boolean = true;
private var progress : float = 0.0;

function Teleport()
{
    if( canTeleport )
    {
        // Teleport stuff
        canTeleport = false;
        //Invoke( "EnableTeleport", 30 ); // Ok, but you don't have the progress
        TeleportCooldown(); // Progress, but a little bit more of code
    }
}

//function EnableTeleport(){ canTeleport = true; }

function TeleportCooldown()
{
    var counter : float = 0.0;
    while( counter < coolDown )
    {
        progress = counter / coolDown;
        yield null;
        counter += Time.deltaTime;
    }

}