
// PreyBoid.java
// Andrew Davison, April 2005, ad@fivedots.coe.psu.ac.th
// Sirinart Sakarin, March 2003, s4210315@calvin.coe.psu.ac.th

/* Agent představující kořist má oranžové tělo a snaží se vyhnout predátorům.
   Spatří-li poblíž predátora, pokusí se mu uniknout.

   Tito agenti mají vyšší maximální rychlost než predátoři.

   Kořist může být sežrána, což znamená, že se odpojí od grafu scény 
   a odebere ze seznamu typu BoidsList.
*/


import javax.media.j3d.*;
import javax.vecmath.*;


public class PreyBoid extends Boid
{
  private final static Color3f orange = new Color3f(1.0f,0.75f,0.0f);


  public PreyBoid(Obstacles obs, PreyBehavior beh)
  { super(orange, 2.0f, obs, beh);     // oranžový a s vyšší maximální rychlostí
	setCapability(BranchGroup.ALLOW_DETACH);   // kořist může být sežrána
  } // konec metody: PreyBoid()


  protected void doVelocityRules()
  /* Přetíží metodu doVelocityRules() pro kontrolu nejbližších predátorů
     a provedení úhybného manévru.
  */
  { Vector3f v = ((PreyBehavior)beh).seePredators(boidmos);
    velChanges.add(v);
    super.doVelocityRules();
  }  // konec metody: doVelocityRules()



  public void boidDetach()
  // odpoj tohoto agenta ze scény, neboť byl právě sežrán
  { detach(); }

  
} // konec třídy: PreyBoid