package rts.core.engine.layers.entities.buildings;
import org.newdawn.slick.Animation;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.Image;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.SpriteSheet;
import rts.core.engine.Engine;
import rts.core.engine.layers.Layer;
import rts.core.engine.layers.entities.EData;
import rts.core.engine.layers.entities.effects.Explosion;
import rts.utils.ResourceManager;
public class Televat extends Building {
private Animation animation;
private Image destroy;
public Televat(Engine engine, int playerId, int teamId, int networkId) {
super(engine, EData.BUILDING_TELEVAT, false, playerId, teamId, networkId);
SpriteSheet ss = ResourceManager.getSpriteSheet("televat_"+engine.getPlayer(playerId).getColor());
width = ss.getSprite(0, 0).getWidth();
height = ss.getSprite(0, 0).getHeight();
animation = new Animation();
animation.setLooping(false);
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 6; j++) {
animation.addFrame(ss.getSprite(j, i), 150);
}
}
animation.addFrame(ss.getSprite(0, 2), 150);
animation.addFrame(ss.getSprite(1, 2), 150);
destroy = ss.getSprite(2, 2);
calcViewLimit(width / 40, height / 40);
}
@Override
public void removeBuilding() {
engine.removeEntity(this);
engine.addEntity(new Explosion(engine, Layer.SECOND_EFFECT, Explosion.NORMAL_2, x, y));
engine.addEntity(new Explosion(engine, Layer.SECOND_EFFECT, Explosion.NORMAL_2, x, y + 10));
engine.addEntity(new Explosion(engine, Layer.SECOND_EFFECT, Explosion.NORMAL_2, x, y + 20));
}
@Override
public void renderBuilding(GameContainer container, Graphics g) throws SlickException {
if (weak || dying) {
g.drawImage(destroy, x, y);
} else {
g.drawAnimation(animation, x, y);
}
}
}