Class: cMisilDirigido

 cObjeto ----+
                                  |
                         cObjetoPersistente ----+
                                                |
                                         cObjetoVolador ----+
                                                            |
                                                          cArma ----+
                                                                    |
                                                                 cMisil ----+
                                                                            |
                                                                     cMisilDirigido

Description:
El misil dirigido es un tipo de arma avanzada. Persigue a su objetivo hasta que lo alcanza o hasta que se le acaba el alcance. Hace un daño alto, su velocidad es mediana y tiene un gran alcance.
Características:
      Dimensión      0,7       metros (70 cm)
      Potencia:      30        Cantidad de daño que hace por intervalo de tiempo
      Energía:       1         Cantidad de daño que soporta antes de ser destruída
      Velocidad:     0,25      metros/milisegundos (900 km/h)
      Alcance:       20000     milisegundos (20 segundos, 5 km)
      Area de Lock:  2000      metros (2 km)
      

Unit:
Armas (Armas.pas)

Constructors:

constructor create( obj: cObjetoVolador; pos: cVector = nil ); overload;
Constructor

Methods:

procedure mDesSerializar( str: string ); override;
Recrea el objeto a partir de una cadena de texto con el objeto serializado.
function mDibujar: tObjetosVoladores; override;
Método heredado, se sobreescribe porque se dibuja de forma distinta
function mGetDebugInfo( debugLevel: tDebugInfo = DI_MINI ): string; override;
Método heredado que devuelve un string con el estado del Objeto. Se utiliza para depurar y la información entregada depende del parámetro tDebugInfo.
function mGetObjetivo: cObjetoVolador;
Obtiene el objetivo del misil dirigido
procedure mModificarVelocidad;
Método que calcula la nueva velocidad basandose en al posicion del objetivo
procedure mMover( dt: tTiempo ); override;
Método heredado, se sobreescribe porque se le agrega alguna funcionalidad
function mSerializar: string; override;
Devuelve una cadena de texto con el objeto serializado.
procedure mSetObjetivo( ov: cObjetoVolador );
Establece el objetivo del misil dirigido

constructor create( obj: cObjetoVolador; pos: cVector = nil ); overload;

Crea una nueva instancia.
Parameters
   obj : Objeto volador al que perseguirá (objetivo)
   pos : Vector posición


procedure mDesSerializar( str: string ); override;

Recrea el objeto a partir de una cadena de texto con el objeto serializado.
Parameters
   str : Cadena de texto con el objeto serializado.


function mDibujar: tObjetosVoladores; override;

Método heredado, se sobreescribe porque se dibuja de forma distinta


function mGetDebugInfo( debugLevel: tDebugInfo = DI_MINI ): string; override;

Devuelve el estado del objeto basandose en la cantidad de datos requeridos. @return Cadena de texto con el estado del Objeto.
Parameters
   debugLevel : Cantidad de información requerida


function mGetObjetivo: cObjetoVolador;

Returns
   Objetivo del misil dirigido.


procedure mModificarVelocidad;

Método que calcula la nueva velocidad basandose en al posicion del objetivo


procedure mMover( dt: tTiempo ); override;

Mueve el arma basado en su posición y velocidad actual, su objetivo y un intervalo de tiempo
Parameters
   dt : Intervalo de tiempo


function mSerializar: string; override;

Returns
   Cadena de texto con el objeto serializado.


procedure mSetObjetivo( ov: cObjetoVolador );

Establece el objetivo del misil dirigido
Parameters
   ov : Nuevo objetivo