예제 #1
0
 public override void DébuterAttaque(Combattant cible)
 {
     if (!HasAggroed)
     {
         HasAggroed = true;
         Soundtrack.StartSongCue("boss_battle_start");
     }
     base.DébuterAttaque(cible);
 }
예제 #2
0
 public void CheckCombattantHit(Combattant combattant)
 {
     foreach (ProjectileBalistique p in ScèneJeu.ProjManager.ListeProjectiles)
     {
         if (IsCollision(combattant, p) && !Combattant.Equals(combattant, p.Propriétaire) && (combattant is Monstre ^ p.Propriétaire is Monstre))
         {
             combattant.PerdrePointsDeVie(p.Damage);
             p.EstEnCollision = true;
             break;
         }
     }
 }
예제 #3
0
        public void CréerProjectile(Combattant combattant, Vector3 posCible, int damage, float PortéeMax)
        {
            ProjectileBalistique newProj = new ProjectileBalistique(Jeu, ScèneJeu, combattant, damage, CptProj, combattant.Position, posCible, PortéeMax, ModelName, ModelScale, Vector3.Zero);
            ListeProjectiles.Add(newProj);
            newProj.Initialize();
            ++CptProj;

            if (combattant is Héros)
            {
                Soundtrack.StartSoundCue("proj_cast");
            }
        }
예제 #4
0
        // Constructeur normal: position, vitesse, angle theta, angle beta
        public ProjectileBalistique(RPG jeu, ScèneDeJeu scèneJeu, Combattant propriétaire, int damage, int id, float vitesseInitiale, float angleTheta, float angleBeta, string nomModèle, float échelleInitiale, Vector3 rotationInitiale, Vector3 positionInitiale)
            : base(jeu, scèneJeu, nomModèle, échelleInitiale, 1f, rotationInitiale, new Vector3(0, 0, 0), positionInitiale)
        {
            Propriétaire = propriétaire;
            Damage = damage;
            ID = id;

            PositionInitiale = new Vector3(positionInitiale.X, positionInitiale.Y+OFFSET_HAUTEUR_DÉPART, positionInitiale.Z);
            Vitesse = vitesseInitiale;
            AngleTheta = MathHelper.ToRadians(angleTheta);
            AngleBeta = MathHelper.ToRadians(angleBeta);
        }
예제 #5
0
        public void CréerProjectile(Combattant combattant, Vector3 posCible, int damage, float PortéeMax)
        {
            ProjectileBalistique newProj = new ProjectileBalistique(Jeu, ScèneJeu, combattant, damage, CptProj, combattant.Position, posCible, PortéeMax, ModelName, ModelScale, Vector3.Zero);

            ListeProjectiles.Add(newProj);
            newProj.Initialize();
            ++CptProj;

            if (combattant is Héros)
            {
                Soundtrack.StartSoundCue("proj_cast");
            }
        }
예제 #6
0
        // Constructeur: position initiale, position finale, portée max
        public ProjectileBalistique(RPG jeu, ScèneDeJeu scèneJeu, Combattant propriétaire, int damage, int id, Vector3 positionInitiale, Vector3 positionFinale, float portéeMax, string nomModèle, float échelleInitiale, Vector3 rotationInitiale)
            : base(jeu, scèneJeu, nomModèle, échelleInitiale, 1f, rotationInitiale, new Vector3(0, 0, 0), positionInitiale)
        {
            Propriétaire = propriétaire;
            Damage = damage;
            ID = id;

            PositionInitiale = new Vector3(positionInitiale.X, positionInitiale.Y+OFFSET_HAUTEUR_DÉPART, positionInitiale.Z);

            float portéeRéelle = (float)Math.Sqrt(((positionFinale.X - PositionInitiale.X) * (positionFinale.X - PositionInitiale.X)) + ((positionFinale.Z - PositionInitiale.Z) * (positionFinale.Z - PositionInitiale.Z)));
            float h = PositionInitiale.Y - positionFinale.Y;

            Vitesse = CalculerVitesseSelonPortéeMax(portéeMax, h, ACCÉLÉRATION_GRAVITATIONNELLE);
            AngleTheta = CalculerAngleThetaSelonVitesse(Vitesse, portéeRéelle, h, ACCÉLÉRATION_GRAVITATIONNELLE);
            AngleBeta = (float)Math.Atan2((positionFinale.X - positionInitiale.X), (positionFinale.Z - positionInitiale.Z));
        }
예제 #7
0
 public virtual void DébuterAttaque(Combattant cible)
 {
     ActionActuelle = Action.ATTAQUER;
     Cible = cible;
     PositionCible = PositionCoord;
 }
예제 #8
0
 public virtual void DébuterAttaque(Combattant cible)
 {
     ActionActuelle = Action.ATTAQUER;
     Cible          = cible;
     PositionCible  = PositionCoord;
 }
예제 #9
0
 public void CheckCombattantHit(Combattant combattant)
 {
     foreach (ProjectileBalistique p in ScèneJeu.ProjManager.ListeProjectiles)
     {
        if (IsCollision(combattant, p) && !Combattant.Equals(combattant, p.Propriétaire) && (combattant is Monstre ^ p.Propriétaire is Monstre))
         {
             combattant.PerdrePointsDeVie(p.Damage);
             p.EstEnCollision = true;
             break;
         }
     }
 }
예제 #10
0
파일: Boss.cs 프로젝트: ChrisVolkoff/DeRPG
 public override void DébuterAttaque(Combattant cible)
 {
     if (!HasAggroed)
     {
         HasAggroed = true;
         Soundtrack.StartSongCue("boss_battle_start");
     }
     base.DébuterAttaque(cible);
 }