Class: cArma

 cObjeto ----+
                                  |
                         cObjetoPersistente ----+
                                                |
                                         cObjetoVolador ----+
                                                            |
                                                          cArma

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

Unit:
Armas (Armas.pas)

Constructors:

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

Methods:

function mActivo: boolean;
Devuelve true si el arma todavia tiene alcance
procedure mActualizarDuracion( dt: tTiempo );
Actualiza el alcance del arma, que va disminuyendo a medida que pasa el tiempo
procedure mDesSerializar( str: string ); override;
Recrea el objeto a partir de una cadena de texto con el objeto serializado.
function mGetAlcance: tLongitud;
Método para obtener el alcance del arma
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 mGetVelMax: tLongitud;
Método para obtener el alcance del arma
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 mSetAlcance( alc: tLongitud );
Método para obtener el alcance del arma

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

Este constructor es protegido porque solo va a ser utilizado por subclases
Parameters
   pos : Posicion inicial
   vel : Velocidad inicial
   dim : Dimensión del objeto volador (radio, en metros)
   pot : Potencia del objeto volador (cantidad de daño que hace por intervalode tiempo)
   ene : Energía del objeto volador(cantidad de daño que soporta antes de ser destruido)
   alcance : Tiempo que debe pasar para que el arma se destruya si no impactó con ningún objeto volador


function mActivo: boolean;

Returns
   true si todavía tiene alcance, false si no


procedure mActualizarDuracion( dt: tTiempo );

Actualiza el alcance del arma, que va disminuyendo a medida que pasa el tiempo
Parameters
   dt : Intervalo de tiempo


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 mGetAlcance: tLongitud;

Returns
   Alcance del 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 mGetVelMax: tLongitud;

Returns
   Velocidad maxima del arma


procedure mMover( dt: tTiempo ); override;

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


function mSerializar: string; override;

Returns
   Cadena de texto con el objeto serializado.


procedure mSetAlcance( alc: tLongitud );

Método para establecer el alcance del arma
Parameters
   alc : Alcance del arma