Class: cNaveEnemiga

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

Description:
La clase cNaveEnemiga esta pensada como una clase abtracta. En ella se encuentran características comunes a todas las naves enemigas.

Unit:
NaveEnemiga (NaveEnemiga.pas)

Constructors:

constructor create( pos: cVector = nil; vel: cVector = nil; dim: tLongitud = 10;
Constructor

Methods:

procedure mDesSerializar( str: string ); override;
Recrea el objeto a partir de una cadena de texto con el objeto serializado.
function mDetectado( ov: cObjetoVolador ): boolean;
Indica si ov esta en el campo de radar
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.
procedure mIrA( pos: cVector );
Hace que la nave se dirija a una posicion particular
procedure mModificarVelocidad( np: cNavePropia; modulo: tLongitud = -1 ); virtual;
Modifica la velocidad de la nave en base a la nave propia
procedure mReaccionar( np: cNavePropia ); virtual; abstract;
Hace reaccionar ante la presencia de la nave propia. Tiene un comportamiento polimófico ya que cada nave enemiga reaccionará de forma diferente (método abstracto)
function mSerializar: string; override;
Devuelve una cadena de texto con el objeto serializado.

constructor create( pos: cVector = nil; vel: cVector = nil; dim: tLongitud = 10;

Constructor
Parameters
   pos : Posicion inicial
   vel : Velocidad inicial
   dim : Dimensión (radio, en metros)
   pot : Potencia (cantidad de daño que hace por intervalode tiempo)
   ene : Energía (cantidad de daño que soporta antes de ser destruido)
   misiles : Cantidad de misiles comunes
   misilesDirigidos : Cantidad de misiles dirigidos
   velMax : Velocidad máxima que puede alcanzar (modulo)
   radar : Área máxima en la que puede detectar a otras naves (radio, en metros)
   retardoLaser : Ratardo del arma antes de poder volver a disparar
   retardoMisil : Ratardo del arma antes de poder volver a disparar
   retardoMisDir : Ratardo del arma antes de poder volver a disparar


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 mDetectado( ov: cObjetoVolador ): boolean;

Indica si ov esta en el campo de radar
Parameters
   ov : Objeto volador a chequear si está dentro del alcance del radar


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


procedure mIrA( pos: cVector );

Hace que la nave se dirija a una posicion particular
Parameters
   pos : Vector posición del punto al cual se dirigirá la nave


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

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 ); virtual; abstract;

Hace reaccionar ante la presencia de la nave propia. Tiene un comportamiento polimófico ya que cada nave enemiga reaccionará de forma diferente (método abstracto)


function mSerializar: string; override;

Returns
   Cadena de texto con el objeto serializado.