package pl.helion.j2mepp.graplatformowa;

import java.io.*;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.TiledLayer;
import java.util.Vector;
public class Pociski
{
 public Pociski(Plotno _plotno)
 {
  lista = new Vector();
  plotno = _plotno;
 }
 public Pocisk utworzPocisk(ObiektRuchomy obiekt,TiledLayer tlo, int rodzaj) throws IOException
 {
  Pocisk pocisk = null;
  pocisk = new Pocisk(obiekt.getNrPlanszyX(),Image.createImage("/pocisk.PNG"),obiekt.getKierunek(),tlo,rodzaj);
  pocisk.setPosition(obiekt.getX()+(obiekt.getKierunek()?obiekt.getWidth()/2:-obiekt.getWidth()/2),obiekt.getY()+obiekt.getHeight()/2);
  plotno.dodajDoMenadzera(pocisk);
  lista.addElement(pocisk);
  return pocisk;
 }
 public void usunPocisk(Pocisk p)
 {
  plotno.usunZMenadzera(p);
  lista.removeElement(p);
 }
 public void usunPociski()
 {
  for (int i=lista.size()-1;i>=0;i--)
  {
   this.usunPocisk((Pocisk)lista.elementAt(i));
  }
 }
 public void sprawdzPociski()
 {
  Potworki potworki = plotno.getPotworki();
  Bohater bohater = plotno.getBohater();
  for (int i=lista.size()-1;i>=0;i--)
  {
   Pocisk p = (Pocisk)lista.elementAt(i);
   if (p.getRodzaj()!=Pocisk.BOHATER)
   if (p.collidesWith(bohater,true))
   {
    this.usunPocisk(p);
    plotno.koniecGry();
   }
   for (int j=0;j<potworki.getDlugosc();j++)
   {
    if (p.getRodzaj()!=Pocisk.WROG)
     if (p.collidesWith(potworki.getPotworek(j),true))
     {
      this.usunPocisk(p);
      potworki.usunPotworek(potworki.getPotworek(j));
      break;
     }
   }
  }
 }
 public void ruchPociskow()
 {
  for (int i=lista.size()-1;i>=0;i--)
  {
   Pocisk p = (Pocisk)lista.elementAt(i);
   p.ruch();
   if (p.zakonczone())
   {
    this.usunPocisk(p);
   }
  }
 }
 private Vector lista;
 private Plotno plotno;
}