Class: cNaveEspia

 cObjeto ----+
                                  |
                         cObjetoPersistente ----+
                                                |
                                         cObjetoVolador ----+
                                                            |
                                                          cNave ----+
                                                                    |
                                                              cNaveEnemiga ----+
                                                                               |
                                                                          cNaveEspia

Description:
Es una nave sin armas que se desplaza por el epacio hasta que encuentra una nave propia, en ese momento empieza a huir avisando a las demas naves enemigas la ultima posicion de la nave propia.
Características:
      Dimensión:            10        metros
      Potencia:             1         Cantidad de daño que hace por intervalo de tiempo
      Energía:              30        Cantidad de daño que soporta antes de ser destruída
      Velocidad máxima:     0,2       metros/milisegundos (720 km/h)
      Campo de radar:       2000      metros (2 km)
      Misiles:              0
      Misiles Dirigidos:    0
      

Unit:
NavesEnemigas (NavesEnemigas.pas)

Constructors:

constructor create( pos : cVector = nil; vel : cVector = nil );
Constructor

Methods:

destructor destroy; override;
Destructor
function mAvisando: boolean;
Método que indica si está avisando
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 mDisparar( dT: tTiempo; ov : cObjetoVolador = nil ): cArma; override;
Método heredado, se sobreescribe porque esta nave en particular no puede disparar
function mGetPosicionEnemiga: cVector;
Método que devuelve la última posición en dónde vió a la nave propia (si está avisando)
procedure mModificarVelocidad( np: cNavePropia; modulo: tLongitud = -1 ); override;
Método heredado se modifica porque su forma de modificar la velocidad es diferente al resto de las naves enemigas
procedure mReaccionar( np : cNavePropia );override;
Método heredado que hace que la nave reaccione ante la presencia de la nave propia (en este caso huirá y empezará a avisar al resto de las naves que encuentre sobre la última posición de la nave propia)
function mSerializar: string; override;
Devuelve una cadena de texto con el objeto serializado.

constructor create( pos : cVector = nil; vel : cVector = nil );

Crea una instancia de una nave espía.
Parameters
   pos : Vector posición
   vel : Vector velocidad


destructor destroy; override;

Destructor


function mAvisando: boolean;

Returns
   true si está avisando, false si no lo está


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;

Returns
   Última posición donde detectó a la nave propia (nil si no la detecto nunca)


function mDisparar( dT: tTiempo; ov : cObjetoVolador = nil ): cArma; override;

Hace que se dispare un arma
Parameters
   ov : Objetivo del disparo
Returns
   Arma disparada (o nil si no se puede disparar ningún arma)


function mGetPosicionEnemiga: cVector;

Método que devuelve la última posición en dónde vió a la nave propia (si está avisando)


procedure mModificarVelocidad( np: cNavePropia; modulo: tLongitud = -1 ); override;

Modifica la velocidad de la nave en base a la nave propia.
Parameters
   np : Nave propia con la cual se calculará la dirección de la nueva velocidad
   modulo : Nuevo módulo de la velocidad


procedure mReaccionar( np : cNavePropia );override;

Método heredado que hace que la nave reaccione ante la presencia de la nave propia (en este caso huirá y empezará a avisar al resto de las naves que encuentre sobre la última posición de la nave propia)
Parameters
   np : Nave Propia con la cual esta reaccionando


function mSerializar: string; override;

Returns
   Cadena de texto con el objeto serializado.