Class: cNave

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

Description:
Clase abstracta con elementos comunes a todas las naves.

Unit:
Nave (Nave.pas)

Constructors:

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

Methods:

procedure mActualizarRetardadores( dT: tTiempo );
Actualiza los retardadores
function mCrearLaserDisparado: cLaser;
Crea un laser (actualizando retardos y todo lo que sea necesario)
function mCrearMisDirDisparado( ov : cObjetoVolador ): cMisilDirigido;
Crea un misil dirigido (actualizando retardos y todo lo que sea necesario)
function mCrearMisilDisparado: cMisil;
Crea un misil (actualizando retardos y todo lo que sea necesario)
procedure mDesSerializar( str: string ); override;
Recrea el objeto a partir de una cadena de texto con el objeto serializado.
function mDisparar( dT: tTiempo; ov : cObjetoVolador = nil ): cArma; virtual;
Hace que se dispare un arma (todavía no está implementado), devolviendo la nueva municion disparada
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 mGetMisiles: tMaxMisil;
Obtiene la cantidad de Misiles que le quedan a la nave
function mGetMisilesDirigidos: tMaxMisilDirigido;
Obtiene la cantidad de Misiles Dirigidos que le quedan a la nave
function mGetVelMax: tLongitud;
Obtiene la velocidad máxima
function mPuedeDispararLaser( ov : cObjetoVolador ): boolean;
Chequea que el enemigo este a distancia, que tenga municiones, etc.
function mPuedeDispararMisDir( ov : cObjetoVolador ): boolean;
Chequea que el enemigo este a distancia, que tenga municiones, etc.
function mPuedeDispararMisil( ov : cObjetoVolador ): boolean;
Chequea que el enemigo este a distancia, que tenga municiones, etc.
function mRestarMisil: cNave;
Resta un misil
function mRestarMisilDirigido: cNave;
Resta un misil dirigido
procedure mRetardarLaser;
Resetea el contador del retardo del láser
procedure mRetardarMisDir;
Resetea el contador del retardo del misil dirigido
procedure mRetardarMisil;
Resetea el contador del retardo del misil
function mSerializar: string; override;
Devuelve una cadena de texto con el objeto serializado.
function mSetVelMax( velMax: tLongitud ): cNave;
Setea la velocidad máxima
function mSetVelModulo( velocidad: tLongitud ): cObjetoVolador; override;
Método para establecer el modulo de la velocidad
function mSetVelocidad( velocidad: cVector ): cObjetoVolador; override;
Método para establecer la velocidad
function mTieneMisil: boolean;
Devuelve true si todavía tiene misiles
function mTieneMisilDirigido: boolean;
Devuelve true si todavía tiene misiles dirigidos

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

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)
   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 mActualizarRetardadores( dT: tTiempo );

Actualiza los retardadores
Parameters
   dT : Intervalo de tiempo a restarles


function mCrearLaserDisparado: cLaser;

Returns
   Nuevo láser


function mCrearMisDirDisparado( ov : cObjetoVolador ): cMisilDirigido;

Crea un misil dirigido (actualizando retardos y restando un misil dirigido)
Parameters
   ov : Objetivo del misil dirigido
Returns
   Nuevo misil dirigido


function mCrearMisilDisparado: cMisil;

Returns
   Nuevo misil


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 mDisparar( dT: tTiempo; ov : cObjetoVolador = nil ): cArma; virtual;

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


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 mGetMisiles: tMaxMisil;

Obtiene la cantidad de Misiles que le quedan a la nave return Cantidad de misiles que le quedan a la nave


function mGetMisilesDirigidos: tMaxMisilDirigido;

Obtiene la cantidad de Misiles que le quedan a la nave return Cantidad de misiles dirigidos que le quedan a la nave


function mGetVelMax: tLongitud;

Returns
   Velocidad máxima (modulo)


function mPuedeDispararLaser( ov : cObjetoVolador ): boolean;

Chequea que el enemigo este a distancia, que tenga municiones, etc.
Parameters
   np : Nave Propia a la que quiere disparar
Returns
   True si está todo ok, False si no.


function mPuedeDispararMisDir( ov : cObjetoVolador ): boolean;

Chequea que el enemigo este a distancia, que tenga municiones, etc.
Parameters
   np : Nave Propia a la que quiere disparar
Returns
   True si está todo ok, False si no.


function mPuedeDispararMisil( ov : cObjetoVolador ): boolean;

Chequea que el enemigo este a distancia, que tenga municiones, etc.
Parameters
   np : Nave Propia a la que quiere disparar
Returns
   True si está todo ok, False si no.


function mRestarMisil: cNave;

Resta un misil


function mRestarMisilDirigido: cNave;

Resta un misil dirigido


procedure mRetardarLaser;

Resetea el contador del retardo del láser


procedure mRetardarMisDir;

Resetea el contador del retardo del misil dirigido


procedure mRetardarMisil;

Resetea el contador del retardo del misil


function mSerializar: string; override;

Returns
   Cadena de texto con el objeto serializado.


function mSetVelMax( velMax: tLongitud ): cNave;

Setea la velocidad máxima
Parameters
   velMax : Nueva velocidad máxima (modulo)


function mSetVelModulo( velocidad: tLongitud ): cObjetoVolador; override;

Método para establecer la velocidad


function mSetVelocidad( velocidad: cVector ): cObjetoVolador; override;

Método para establecer el modulo de la velocidad


function mTieneMisil: boolean;

Returns
   true si tiene misiles, false si no


function mTieneMisilDirigido: boolean;

Returns
   true si tiene misiles dirigidos, false si no