00001
00002
00009
00010
#include "entite_ennemi.h"
00011
#include "entite_arme.h"
00012
#include "ctrl_fenetre.h"
00013
#include "ctrl_son.h"
00014
#include "ctrl_jeu.h"
00015
#include "entite_ennemi.h"
00016
#include "fx_explosion.h"
00017
00018 CEntiteEnnemi::CEntiteEnnemi ()
00019 {
00020
m_uiPoint = 10;
00021
m_iBouclier = 1;
00022 m_TireTimer.
Init ();
00023 }
00024
00025 CEntiteEnnemi::~CEntiteEnnemi ()
00026 {
00027
00028
if (
EstDansEcran (GetPosition (), m_pTypeEnnemi->
GetTaille ()))
00029 {
00030
00031
CSoundManager::Instance ()->
Jouer (m_pTypeEnnemi->
GetSon (),
CANAL_ENNEMI);
00032
00033
CExplosion::Create (0, 32, GetPosition (), 96, 1.0f,
CCouleur (1.0f, 0.5f, 0.2f));
00034 }
00035 }
00036
00037
00038 CEntiteEnnemi*
CEntiteEnnemi::Create (
const CTypeEnnemi* pTypeEnnemi,
const CVecteur & Position)
00039 {
00040
00041
CEntiteEnnemi *pEntite =
CEntityManager::Instance ()->
CreateEnnemi ();
00042
if (pEntite == 0)
00043
return 0;
00044
00045
CVecteur Vecteur =
CVecteur (
00046
RandFloat (pTypeEnnemi->
GetVitesse () (gtl::X) * 0.75f, pTypeEnnemi->
GetVitesse () (gtl::X) * 1.25f),
00047
RandFloat (pTypeEnnemi->
GetVitesse () (gtl::Y) * 0.75f, pTypeEnnemi->
GetVitesse () (gtl::Y) * 1.25f));
00048 pEntite->
m_pTypeEnnemi = pTypeEnnemi;
00049 pEntite->
m_iBouclier = pTypeEnnemi->
GetBouclier ();
00050 pEntite->
m_PositionI = pEntite->
m_PositionF = Position;
00051 pEntite->
m_VitesseI = pEntite->
m_VitesseF = Vecteur;
00052 pEntite->
m_Acceleration = pTypeEnnemi->
GetAcceleration ();
00053
00054
return pEntite;
00055 }
00056
00057 unsigned int CEntiteEnnemi::GetPoint ()
const
00058
{
00059
return m_pTypeEnnemi->
GetPoint ();
00060 }
00061
00062 int CEntiteEnnemi::GetDommage ()
const
00063
{
00064
return m_pTypeEnnemi->
GetDommage ();
00065 }
00066
00067 CTexture*
CEntiteEnnemi::GetTexture ()
const
00068
{
00069
return m_pTypeEnnemi->
GetTexture ();
00070 }
00071
00072 float CEntiteEnnemi::GetTaille ()
const
00073
{
00074
return m_pTypeEnnemi->
GetTaille ();
00075 }
00076
00077 void CEntiteEnnemi::Action ()
00078 {
00079
00080
if (!m_pTypeEnnemi->
GetTypeArme ())
00081
return;
00082
00083
if (!
EstDansEcran (m_PositionF, 0))
00084
return;
00085
00086
if (m_TireTimer.
GetTime () > m_pTypeEnnemi->
GetTypeArme ()->
GetCadence ())
00087 {
00088 m_TireTimer.
Init ();
00089
for (
unsigned int i = 0; i < m_pTypeEnnemi->
GetTypeArme ()->
GetAncrageNombre (); i++)
00090
CEntiteArme::Create (m_pTypeEnnemi->
GetTypeArme (),
this, m_pTypeEnnemi->
GetTypeArme ()->
GetAncrageParIndex (i));
00091 }
00092 }
00093