Ejemplo n.º 1
0
 /** Establece las estadísticas usando las bases de su raza, el nivel y los incrementos pasados. */
 @Override
 public void setStats(
     float incrementAtq,
     float incrementDef,
     float incrementHp,
     float incrementVel,
     int baseExperience) {
   super.setStats(incrementAtq, incrementDef, incrementHp, incrementVel, baseExperience);
   // ToDo: Cambiar delays según estadísticas
   this.delayAppear = 2 + (int) (Math.random() * 6);
   this.delayAttack = 1 + (int) (Math.random() * 4);
   this.delayDisappear = 2 + (int) (Math.random() * 6);
   this.actualDelay = this.delayAttack;
   this.mode = 0;
 }
Ejemplo n.º 2
0
 /** Actualiza al enemigo. */
 @Override
 public void act(float delta) {
   super.act(delta);
   switch (mode) {
     case 0: // Ha aparecido y espera para atacar. Ataca
       if (actualDelay > 0) actualDelay -= delta;
       else {
         actualDelay = delayDisappear;
         mode = 1;
         game.attacks.add(
             new BallAttack(this, attackDirection.x, attackDirection.y, Attack.Type.BASIC));
       }
       break;
     case 1: // Ha atacado y espera para desaparecer. Desaparece
       if (actualDelay > 0) actualDelay -= delta;
       else {
         actualDelay = delayAppear;
         mode = 2;
         draw = false;
         game.removeTemporallyEntity(this);
       }
       break;
     case 2: // Ha desaparecido y espera para aparecer. Aparece
       if (actualDelay > 0) actualDelay -= delta;
       else if (calculateNewStep()) { // Si se puede mover
         actualDelay = delayAttack;
         mode = 0;
         draw = true;
         game.addTemporallyEntity(this);
         setCenterPosition(nextStep);
         attackDirection.x = mainpj.getCenterX();
         attackDirection.y = mainpj.getCenterY();
         setRotation(
             new Vector2(getCenterX() - attackDirection.x, getCenterY() - attackDirection.y)
                     .angle()
                 + 180);
       }
       break;
   }
 }
Ejemplo n.º 3
0
 /** Dibuja al enemigo si está en escena. */
 @Override
 public void draw(SpriteBatch batch, float parentAlpha) {
   if (draw) super.draw(batch, parentAlpha);
 }